PageSourceSearch

https://ragnaro-nl.casino/wp-content/themes/ragnaro-nl.casinotheme/assets/js/swiper-bundle.min.js?ver=0.068

js ragnaro-nl.casino collected 2026-10-09 23:25:50 UTC 262,589 bytes, 7,699 lines download raw bytes

1/**
2 * Swiper 11.2.10
3 * Most modern mobile touch slider and framework with hardware accelerated transitions
4 * https://swiperjs.com
5 *
6 * Copyright 2014-2025 Vladimir Kharlampidi
7 *
8 * Released under the MIT License
9 *
10 * Released on: June 28, 2025
11 */
12
13var Swiper = (function () {
14  "use strict";
15  function e(e) {
16    return (
17      null !== e &&
18      "object" == typeof e &&
19      "constructor" in e &&
20      e.constructor === Object
21    );
22  }
23  function t(s, a) {
24    void 0 === s && (s = {}), void 0 === a && (a = {});
25    const i = ["__proto__", "constructor", "prototype"];
26    Object.keys(a)
27      .filter((e) => i.indexOf(e) < 0)
28      .forEach((i) => {
29        void 0 === s[i]
30          ? (s[i] = a[i])
31          : e(a[i]) && e(s[i]) && Object.keys(a[i]).length > 0 && t(s[i], a[i]);
32      });
33  }
34  const s = {
35    body: {},
36    addEventListener() {},
37    removeEventListener() {},
38    activeElement: { blur() {}, nodeName: "" },
39    querySelector: () => null,
40    querySelectorAll: () => [],
41    getElementById: () => null,
42    createEvent: () => ({ initEvent() {} }),
43    createElement: () => ({
44      children: [],
45      childNodes: [],
46      style: {},
47      setAttribute() {},
48      getElementsByTagName: () => [],
49    }),
50    createElementNS: () => ({}),
51    importNode: () => null,
52    location: {
53      hash: "",
54      host: "",
55      hostname: "",
56      href: "",
57      origin: "",
58      pathname: "",
59      protocol: "",
60      search: "",
61    },
62  };
63  function a() {
64    const e = "undefined" != typeof document ? document : {};
65    return t(e, s), e;
66  }
67  const i = {
68    document: s,
69    navigator: { userAgent: "" },
70    location: {
71      hash: "",
72      host: "",
73      hostname: "",
74      href: "",
75      origin: "",
76      pathname: "",
77      protocol: "",
78      search: "",
79    },
80    history: { replaceState() {}, pushState() {}, go() {}, back() {} },
81    CustomEvent: function () {
82      return this;
83    },
84    addEventListener() {},
85    removeEventListener() {},
86    getComputedStyle: () => ({ getPropertyValue: () => "" }),
87    Image() {},
88    Date() {},
89    screen: {},
90    setTimeout() {},
91    clearTimeout() {},
92    matchMedia: () => ({}),
93    requestAnimationFrame: (e) =>
94      "undefined" == typeof setTimeout ? (e(), null) : setTimeout(e, 0),
95    cancelAnimationFrame(e) {
96      "undefined" != typeof setTimeout && clearTimeout(e);
97    },
98  };
99  function r() {
100    const e = "undefined" != typeof window ? window : {};
101    return t(e, i), e;
102  }
103  function n(e) {
104    return (
105      void 0 === e && (e = ""),
106      e
107        .trim()
108        .split(" ")
109        .filter((e) => !!e.trim())
110    );
111  }
112  function l(e, t) {
113    return void 0 === t && (t = 0), setTimeout(e, t);
114  }
115  function o() {
116    return Date.now();
117  }
118  function d(e, t) {
119    void 0 === t && (t = "x");
120    const s = r();
121    let a, i, n;
122    const l = (function (e) {
123      const t = r();
124      let s;
125      return (
126        t.getComputedStyle && (s = t.getComputedStyle(e, null)),
127        !s && e.currentStyle && (s = e.currentStyle),
128        s || (s = e.style),
129        s
130      );
131    })(e);
132    return (
133      s.WebKitCSSMatrix
134        ? ((i = l.transform || l.webkitTransform),
135          i.split(",").length > 6 &&
136            (i = i
137              .split(", ")
138              .map((e) => e.replace(",", "."))
139              .join(", ")),
140          (n = new s.WebKitCSSMatrix("none" === i ? "" : i)))
141        : ((n =
142            l.MozTransform ||
143            l.OTransform ||
144            l.MsTransform ||
145            l.msTransform ||
146            l.transform ||
147            l
148              .getPropertyValue("transform")
149              .replace("translate(", "matrix(1, 0, 0, 1,")),
150          (a = n.toString().split(","))),
151      "x" === t &&
152        (i = s.WebKitCSSMatrix
153          ? n.m41
154          : 16 === a.length
155          ? parseFloat(a[12])
156          : parseFloat(a[4])),
157      "y" === t &&
158        (i = s.WebKitCSSMatrix
159          ? n.m42
160          : 16 === a.length
161          ? parseFloat(a[13])
162          : parseFloat(a[5])),
163      i || 0
164    );
165  }
166  function c(e) {
167    return (
168      "object" == typeof e &&
169      null !== e &&
170      e.constructor &&
171      "Object" === Object.prototype.toString.call(e).slice(8, -1)
172    );
173  }
174  function p() {
175    const e = Object(arguments.length <= 0 ? void 0 : arguments[0]),
176      t = ["__proto__", "constructor", "prototype"];
177    for (let a = 1; a < arguments.length; a += 1) {
178      const i = a < 0 || arguments.length <= a ? void 0 : arguments[a];
179      if (
180        null != i &&
181        ((s = i),
182        !("undefined" != typeof window && void 0 !== window.HTMLElement
183          ? s instanceof HTMLElement
184          : s && (1 === s.nodeType || 11 === s.nodeType)))
185      ) {
186        const s = Object.keys(Object(i)).filter((e) => t.indexOf(e) < 0);
187        for (let t = 0, a = s.length; t < a; t += 1) {
188          const a = s[t],
189            r = Object.getOwnPropertyDescriptor(i, a);
190          void 0 !== r &&
191            r.enumerable &&
192            (c(e[a]) && c(i[a])
193              ? i[a].__swiper__
194                ? (e[a] = i[a])
195                : p(e[a], i[a])
196              : !c(e[a]) && c(i[a])
197              ? ((e[a] = {}), i[a].__swiper__ ? (e[a] = i[a]) : p(e[a], i[a]))
198              : (e[a] = i[a]));
199        }
200      }
201    }
202    var s;
203    return e;
204  }
205  function u(e, t, s) {
206    e.style.setProperty(t, s);
207  }
208  function m(e) {
209    let { swiper: t, targetPosition: s, side: a } = e;
210    const i = r(),
211      n = -t.translate;
212    let l,
213      o = null;
214    const d = t.params.speed;
215    (t.wrapperEl.style.scrollSnapType = "none"),
216      i.cancelAnimationFrame(t.cssModeFrameID);
217    const c = s > n ? "next" : "prev",
218      p = (e, t) => ("next" === c && e >= t) || ("prev" === c && e <= t),
219      u = () => {
220        (l = new Date().getTime()), null === o && (o = l);
221        const e = Math.max(Math.min((l - o) / d, 1), 0),
222          r = 0.5 - Math.cos(e * Math.PI) / 2;
223        let c = n + r * (s - n);
224        if ((p(c, s) && (c = s), t.wrapperEl.scrollTo({ [a]: c }), p(c, s)))
225          return (
226            (t.wrapperEl.style.overflow = "hidden"),
227            (t.wrapperEl.style.scrollSnapType = ""),
228            setTimeout(() => {
229              (t.wrapperEl.style.overflow = ""),
230                t.wrapperEl.scrollTo({ [a]: c });
231            }),
232            void i.cancelAnimationFrame(t.cssModeFrameID)
233          );
234        t.cssModeFrameID = i.requestAnimationFrame(u);
235      };
236    u();
237  }
238  function h(e) {
239    return (
240      e.querySelector(".swiper-slide-transform") ||
241      (e.shadowRoot && e.shadowRoot.querySelector(".swiper-slide-transform")) ||
242      e
243    );
244  }
245  function f(e, t) {
246    void 0 === t && (t = "");
247    const s = r(),
248      a = [...e.children];
249    return (
250      s.HTMLSlotElement &&
251        e instanceof HTMLSlotElement &&
252        a.push(...e.assignedElements()),
253      t ? a.filter((e) => e.matches(t)) : a
254    );
255  }
256  function g(e) {
257    try {
258      return void console.warn(e);
259    } catch (e) {}
260  }
261  function v(e, t) {
262    void 0 === t && (t = []);
263    const s = document.createElement(e);
264    return s.classList.add(...(Array.isArray(t) ? t : n(t))), s;
265  }
266  function w(e) {
267    const t = r(),
268      s = a(),
269      i = e.getBoundingClientRect(),
270      n = s.body,
271      l = e.clientTop || n.clientTop || 0,
272      o = e.clientLeft || n.clientLeft || 0,
273      d = e === t ? t.scrollY : e.scrollTop,
274      c = e === t ? t.scrollX : e.scrollLeft;
275    return { top: i.top + d - l, left: i.left + c - o };
276  }
277  function b(e, t) {
278    return r().getComputedStyle(e, null).getPropertyValue(t);
279  }
280  function y(e) {
281    let t,
282      s = e;
283    if (s) {
284      for (t = 0; null !== (s = s.previousSibling); )
285        1 === s.nodeType && (t += 1);
286      return t;
287    }
288  }
289  function E(e, t) {
290    const s = [];
291    let a = e.parentElement;
292    for (; a; )
293      t ? a.matches(t) && s.push(a) : s.push(a), (a = a.parentElement);
294    return s;
295  }
296  function x(e, t) {
297    t &&
298      e.addEventListener("transitionend", function s(a) {
299        a.target === e &&
300          (t.call(e, a), e.removeEventListener("transitionend", s));
301      });
302  }
303  function S(e, t, s) {
304    const a = r();
305    return s
306      ? e["width" === t ? "offsetWidth" : "offsetHeight"] +
307          parseFloat(
308            a
309              .getComputedStyle(e, null)
310              .getPropertyValue("width" === t ? "margin-right" : "margin-top")
311          ) +
312          parseFloat(
313            a
314              .getComputedStyle(e, null)
315              .getPropertyValue("width" === t ? "margin-left" : "margin-bottom")
316          )
317      : e.offsetWidth;
318  }
319  function T(e) {
320    return (Array.isArray(e) ? e : [e]).filter((e) => !!e);
321  }
322  function M(e) {
323    return (t) =>
324      Math.abs(t) > 0 &&
325      e.browser &&
326      e.browser.need3dFix &&
327      Math.abs(t) % 90 == 0
328        ? t + 0.001
329        : t;
330  }
331  function C(e, t) {
332    void 0 === t && (t = ""),
333      "undefined" != typeof trustedTypes
334        ? (e.innerHTML = trustedTypes
335            .createPolicy("html", { createHTML: (e) => e })
336            .createHTML(t))
337        : (e.innerHTML = t);
338  }
339  let P, L, I;
340  function z() {
341    return (
342      P ||
343        (P = (function () {
344          const e = r(),
345            t = a();
346          return {
347            smoothScroll:
348              t.documentElement &&
349              t.documentElement.style &&
350              "scrollBehavior" in t.documentElement.style,
351            touch: !!(
352              "ontouchstart" in e ||
353              (e.DocumentTouch && t instanceof e.DocumentTouch)
354            ),
355          };
356        })()),
357      P
358    );
359  }
360  function A(e) {
361    return (
362      void 0 === e && (e = {}),
363      L ||
364        (L = (function (e) {
365          let { userAgent: t } = void 0 === e ? {} : e;
366          const s = z(),
367            a = r(),
368            i = a.navigator.platform,
369            n = t || a.navigator.userAgent,
370            l = { ios: !1, android: !1 },
371            o = a.screen.width,
372            d = a.screen.height,
373            c = n.match(/(Android);?[\s\/]+([\d.]+)?/);
374          let p = n.match(/(iPad).*OS\s([\d_]+)/);
375          const u = n.match(/(iPod)(.*OS\s([\d_]+))?/),
376            m = !p && n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),
377            h = "Win32" === i;
378          let f = "MacIntel" === i;
379          return (
380            !p &&
381              f &&
382              s.touch &&
383              [
384                "1024x1366",
385                "1366x1024",
386                "834x1194",
387                "1194x834",
388                "834x1112",
389                "1112x834",
390                "768x1024",
391                "1024x768",
392                "820x1180",
393                "1180x820",
394                "810x1080",
395                "1080x810",
396              ].indexOf(`${o}x${d}`) >= 0 &&
397              ((p = n.match(/(Version)\/([\d.]+)/)),
398              p || (p = [0, 1, "13_0_0"]),
399              (f = !1)),
400            c && !h && ((l.os = "android"), (l.android = !0)),
401            (p || m || u) && ((l.os = "ios"), (l.ios = !0)),
402            l
403          );
404        })(e)),
405      L
406    );
407  }
408  function $() {
409    return (
410      I ||
411        (I = (function () {
412          const e = r(),
413            t = A();
414          let s = !1;
415          function a() {
416            const t = e.navigator.userAgent.toLowerCase();
417            return (
418              t.indexOf("safari") >= 0 &&
419              t.indexOf("chrome") < 0 &&
420              t.indexOf("android") < 0
421            );
422          }
423          if (a()) {
424            const t = String(e.navigator.userAgent);
425            if (t.includes("Version/")) {
426              const [e, a] = t
427                .split("Version/")[1]
428                .split(" ")[0]
429                .split(".")
430                .map((e) => Number(e));
431              s = e < 16 || (16 === e && a < 2);
432            }
433          }
434          const i = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(
435              e.navigator.userAgent
436            ),
437            n = a();
438          return {
439            isSafari: s || n,
440            needPerspectiveFix: s,
441            need3dFix: n || (i && t.ios),
442            isWebView: i,
443          };
444        })()),
445      I
446    );
447  }
448  var k = {
449    on(e, t, s) {
450      const a = this;
451      if (!a.eventsListeners || a.destroyed) return a;
452      if ("function" != typeof t) return a;
453      const i = s ? "unshift" : "push";
454      return (
455        e.split(" ").forEach((e) => {
456          a.eventsListeners[e] || (a.eventsListeners[e] = []),
457            a.eventsListeners[e][i](t);
458        }),
459        a
460      );
461    },
462    once(e, t, s) {
463      const a = this;
464      if (!a.eventsListeners || a.destroyed) return a;
465      if ("function" != typeof t) return a;
466      function i() {
467        a.off(e, i), i.__emitterProxy && delete i.__emitterProxy;
468        for (var s = arguments.length, r = new Array(s), n = 0; n < s; n++)
469          r[n] = arguments[n];
470        t.apply(a, r);
471      }
472      return (i.__emitterProxy = t), a.on(e, i, s);
473    },
474    onAny(e, t) {
475      const s = this;
476      if (!s.eventsListeners || s.destroyed) return s;
477      if ("function" != typeof e) return s;
478      const a = t ? "unshift" : "push";
479      return (
480        s.eventsAnyListeners.indexOf(e) < 0 && s.eventsAnyListeners[a](e), s
481      );
482    },
483    offAny(e) {
484      const t = this;
485      if (!t.eventsListeners || t.destroyed) return t;
486      if (!t.eventsAnyListeners) return t;
487      const s = t.eventsAnyListeners.indexOf(e);
488      return s >= 0 && t.eventsAnyListeners.splice(s, 1), t;
489    },
490    off(e, t) {
491      const s = this;
492      return !s.eventsListeners || s.destroyed
493        ? s
494        : s.eventsListeners
495        ? (e.split(" ").forEach((e) => {
496            void 0 === t
497              ? (s.eventsListeners[e] = [])
498              : s.eventsListeners[e] &&
499                s.eventsListeners[e].forEach((a, i) => {
500                  (a === t || (a.__emitterProxy && a.__emitterProxy === t)) &&
501                    s.eventsListeners[e].splice(i, 1);
502                });
503          }),
504          s)
505        : s;
506    },
507    emit() {
508      const e = this;
509      if (!e.eventsListeners || e.destroyed) return e;
510      if (!e.eventsListeners) return e;
511      let t, s, a;
512      for (var i = arguments.length, r = new Array(i), n = 0; n < i; n++)
513        r[n] = arguments[n];
514      "string" == typeof r[0] || Array.isArray(r[0])
515        ? ((t = r[0]), (s = r.slice(1, r.length)), (a = e))
516        : ((t = r[0].events), (s = r[0].data), (a = r[0].context || e)),
517        s.unshift(a);
518      return (
519        (Array.isArray(t) ? t : t.split(" ")).forEach((t) => {
520          e.eventsAnyListeners &&
521            e.eventsAnyListeners.length &&
522            e.eventsAnyListeners.forEach((e) => {
523              e.apply(a, [t, ...s]);
524            }),
525            e.eventsListeners &&
526              e.eventsListeners[t] &&
527              e.eventsListeners[t].forEach((e) => {
528                e.apply(a, s);
529              });
530        }),
531        e
532      );
533    },
534  };
535  const O = (e, t, s) => {
536    t && !e.classList.contains(s)
537      ? e.classList.add(s)
538      : !t && e.classList.contains(s) && e.classList.remove(s);
539  };
540  const D = (e, t, s) => {
541    t && !e.classList.contains(s)
542      ? e.classList.add(s)
543      : !t && e.classList.contains(s) && e.classList.remove(s);
544  };
545  const G = (e, t) => {
546      if (!e || e.destroyed || !e.params) return;
547      const s = t.closest(
548        e.isElement ? "swiper-slide" : `.${e.params.slideClass}`
549      );
550      if (s) {
551        let t = s.querySelector(`.${e.params.lazyPreloaderClass}`);
552        !t &&
553          e.isElement &&
554          (s.shadowRoot
555            ? (t = s.shadowRoot.querySelector(
556                `.${e.params.lazyPreloaderClass}`
557              ))
558            : requestAnimationFrame(() => {
559                s.shadowRoot &&
560                  ((t = s.shadowRoot.querySelector(
561                    `.${e.params.lazyPreloaderClass}`
562                  )),
563                  t && t.remove());
564              })),
565          t && t.remove();
566      }
567    },
568    X = (e, t) => {
569      if (!e.slides[t]) return;
570      const s = e.slides[t].querySelector('[loading="lazy"]');
571      s && s.removeAttribute("loading");
572    },
573    Y = (e) => {
574      if (!e || e.destroyed || !e.params) return;
575      let t = e.params.lazyPreloadPrevNext;
576      const s = e.slides.length;
577      if (!s || !t || t < 0) return;
578      t = Math.min(t, s);
579      const a =
580          "auto" === e.params.slidesPerView
581            ? e.slidesPerViewDynamic()
582            : Math.ceil(e.params.slidesPerView),
583        i = e.activeIndex;
584      if (e.params.grid && e.params.grid.rows > 1) {
585        const s = i,
586          r = [s - t];
587        return (
588          r.push(...Array.from({ length: t }).map((e, t) => s + a + t)),
589          void e.slides.forEach((t, s) => {
590            r.includes(t.column) && X(e, s);
591          })
592        );
593      }
594      const r = i + a - 1;
595      if (e.params.rewind || e.params.loop)
596        for (let a = i - t; a <= r + t; a += 1) {
597          const t = ((a % s) + s) % s;
598          (t < i || t > r) && X(e, t);
599        }
600      else
601        for (let a = Math.max(i - t, 0); a <= Math.min(r + t, s - 1); a += 1)
602          a !== i && (a > r || a < i) && X(e, a);
603    };
604  var B = {
605    updateSize: function () {
606      const e = this;
607      let t, s;
608      const a = e.el;
609      (t =
610        void 0 !== e.params.width && null !== e.params.width
611          ? e.params.width
612          : a.clientWidth),
613        (s =
614          void 0 !== e.params.height && null !== e.params.height
615            ? e.params.height
616            : a.clientHeight),
617        (0 === t && e.isHorizontal()) ||
618          (0 === s && e.isVertical()) ||
619          ((t =
620            t -
621            parseInt(b(a, "padding-left") || 0, 10) -
622            parseInt(b(a, "padding-right") || 0, 10)),
623          (s =
624            s -
625            parseInt(b(a, "padding-top") || 0, 10) -
626            parseInt(b(a, "padding-bottom") || 0, 10)),
627          Number.isNaN(t) && (t = 0),
628          Number.isNaN(s) && (s = 0),
629          Object.assign(e, {
630            width: t,
631            height: s,
632            size: e.isHorizontal() ? t : s,
633          }));
634    },
635    updateSlides: function () {
636      const e = this;
637      function t(t, s) {
638        return parseFloat(t.getPropertyValue(e.getDirectionLabel(s)) || 0);
639      }
640      const s = e.params,
641        {
642          wrapperEl: a,
643          slidesEl: i,
644          size: r,
645          rtlTranslate: n,
646          wrongRTL: l,
647        } = e,
648        o = e.virtual && s.virtual.enabled,
649        d = o ? e.virtual.slides.length : e.slides.length,
650        c = f(i, `.${e.params.slideClass}, swiper-slide`),
651        p = o ? e.virtual.slides.length : c.length;
652      let m = [];
653      const h = [],
654        g = [];
655      let v = s.slidesOffsetBefore;
656      "function" == typeof v && (v = s.slidesOffsetBefore.call(e));
657      let w = s.slidesOffsetAfter;
658      "function" == typeof w && (w = s.slidesOffsetAfter.call(e));
659      const y = e.snapGrid.length,
660        E = e.slidesGrid.length;
661      let x = s.spaceBetween,
662        T = -v,
663        M = 0,
664        C = 0;
665      if (void 0 === r) return;
666      "string" == typeof x && x.indexOf("%") >= 0
667        ? (x = (parseFloat(x.replace("%", "")) / 100) * r)
668        : "string" == typeof x && (x = parseFloat(x)),
669        (e.virtualSize = -x),
670        c.forEach((e) => {
671          n ? (e.style.marginLeft = "") : (e.style.marginRight = ""),
672            (e.style.marginBottom = ""),
673            (e.style.marginTop = "");
674        }),
675        s.centeredSlides &&
676          s.cssMode &&
677          (u(a, "--swiper-centered-offset-before", ""),
678          u(a, "--swiper-centered-offset-after", ""));
679      const P = s.grid && s.grid.rows > 1 && e.grid;
680      let L;
681      P ? e.grid.initSlides(c) : e.grid && e.grid.unsetSlides();
682      const I =
683        "auto" === s.slidesPerView &&
684        s.breakpoints &&
685        Object.keys(s.breakpoints).filter(
686          (e) => void 0 !== s.breakpoints[e].slidesPerView
687        ).length > 0;
688      for (let a = 0; a < p; a += 1) {
689        let i;
690        if (
691          ((L = 0),
692          c[a] && (i = c[a]),
693          P && e.grid.updateSlide(a, i, c),
694          !c[a] || "none" !== b(i, "display"))
695        ) {
696          if ("auto" === s.slidesPerView) {
697            I && (c[a].style[e.getDirectionLabel("width")] = "");
698            const r = getComputedStyle(i),
699              n = i.style.transform,
700              l = i.style.webkitTransform;
701            if (
702              (n && (i.style.transform = "none"),
703              l && (i.style.webkitTransform = "none"),
704              s.roundLengths)
705            )
706              L = e.isHorizontal() ? S(i, "width", !0) : S(i, "height", !0);
707            else {
708              const e = t(r, "width"),
709                s = t(r, "padding-left"),
710                a = t(r, "padding-right"),
711                n = t(r, "margin-left"),
712                l = t(r, "margin-right"),
713                o = r.getPropertyValue("box-sizing");
714              if (o && "border-box" === o) L = e + n + l;
715              else {
716                const { clientWidth: t, offsetWidth: r } = i;
717                L = e + s + a + n + l + (r - t);
718              }
719            }
720            n && (i.style.transform = n),
721              l && (i.style.webkitTransform = l),
722              s.roundLengths && (L = Math.floor(L));
723          } else
724            (L = (r - (s.slidesPerView - 1) * x) / s.slidesPerView),
725              s.roundLengths && (L = Math.floor(L)),
726              c[a] && (c[a].style[e.getDirectionLabel("width")] = `${L}px`);
727          c[a] && (c[a].swiperSlideSize = L),
728            g.push(L),
729            s.centeredSlides
730              ? ((T = T + L / 2 + M / 2 + x),
731                0 === M && 0 !== a && (T = T - r / 2 - x),
732                0 === a && (T = T - r / 2 - x),
733                Math.abs(T) < 0.001 && (T = 0),
734                s.roundLengths && (T = Math.floor(T)),
735                C % s.slidesPerGroup == 0 && m.push(T),
736                h.push(T))
737              : (s.roundLengths && (T = Math.floor(T)),
738                (C - Math.min(e.params.slidesPerGroupSkip, C)) %
739                  e.params.slidesPerGroup ==
740                  0 && m.push(T),
741                h.push(T),
742                (T = T + L + x)),
743            (e.virtualSize += L + x),
744            (M = L),
745            (C += 1);
746        }
747      }
748      if (
749        ((e.virtualSize = Math.max(e.virtualSize, r) + w),
750        n &&
751          l &&
752          ("slide" === s.effect || "coverflow" === s.effect) &&
753          (a.style.width = `${e.virtualSize + x}px`),
754        s.setWrapperSize &&
755          (a.style[e.getDirectionLabel("width")] = `${e.virtualSize + x}px`),
756        P && e.grid.updateWrapperSize(L, m),
757        !s.centeredSlides)
758      ) {
759        const t = [];
760        for (let a = 0; a < m.length; a += 1) {
761          let i = m[a];
762          s.roundLengths && (i = Math.floor(i)),
763            m[a] <= e.virtualSize - r && t.push(i);
764        }
765        (m = t),
766          Math.floor(e.virtualSize - r) - Math.floor(m[m.length - 1]) > 1 &&
767            m.push(e.virtualSize - r);
768      }
769      if (o && s.loop) {
770        const t = g[0] + x;
771        if (s.slidesPerGroup > 1) {
772          const a = Math.ceil(
773              (e.virtual.slidesBefore + e.virtual.slidesAfter) /
774                s.slidesPerGroup
775            ),
776            i = t * s.slidesPerGroup;
777          for (let e = 0; e < a; e += 1) m.push(m[m.length - 1] + i);
778        }
779        for (
780          let a = 0;
781          a < e.virtual.slidesBefore + e.virtual.slidesAfter;
782          a += 1
783        )
784          1 === s.slidesPerGroup && m.push(m[m.length - 1] + t),
785            h.push(h[h.length - 1] + t),
786            (e.virtualSize += t);
787      }
788      if ((0 === m.length && (m = [0]), 0 !== x)) {
789        const t =
790          e.isHorizontal() && n
791            ? "marginLeft"
792            : e.getDirectionLabel("marginRight");
793        c.filter(
794          (e, t) => !(s.cssMode && !s.loop) || t !== c.length - 1
795        ).forEach((e) => {
796          e.style[t] = `${x}px`;
797        });
798      }
799      if (s.centeredSlides && s.centeredSlidesBounds) {
800        let e = 0;
801        g.forEach((t) => {
802          e += t + (x || 0);
803        }),
804          (e -= x);
805        const t = e > r ? e - r : 0;
806        m = m.map((e) => (e <= 0 ? -v : e > t ? t + w : e));
807      }
808      if (s.centerInsufficientSlides) {
809        let e = 0;
810        g.forEach((t) => {
811          e += t + (x || 0);
812        }),
813          (e -= x);
814        const t = (s.slidesOffsetBefore || 0) + (s.slidesOffsetAfter || 0);
815        if (e + t < r) {
816          const s = (r - e - t) / 2;
817          m.forEach((e, t) => {
818            m[t] = e - s;
819          }),
820            h.forEach((e, t) => {
821              h[t] = e + s;
822            });
823        }
824      }
825      if (
826        (Object.assign(e, {
827          slides: c,
828          snapGrid: m,
829          slidesGrid: h,
830          slidesSizesGrid: g,
831        }),
832        s.centeredSlides && s.cssMode && !s.centeredSlidesBounds)
833      ) {
834        u(a, "--swiper-centered-offset-before", -m[0] + "px"),
835          u(
836            a,
837            "--swiper-centered-offset-after",
838            e.size / 2 - g[g.length - 1] / 2 + "px"
839          );
840        const t = -e.snapGrid[0],
841          s = -e.slidesGrid[0];
842        (e.snapGrid = e.snapGrid.map((e) => e + t)),
843          (e.slidesGrid = e.slidesGrid.map((e) => e + s));
844      }
845      if (
846        (p !== d && e.emit("slidesLengthChange"),
847        m.length !== y &&
848          (e.params.watchOverflow && e.checkOverflow(),
849          e.emit("snapGridLengthChange")),
850        h.length !== E && e.emit("slidesGridLengthChange"),
851        s.watchSlidesProgress && e.updateSlidesOffset(),
852        e.emit("slidesUpdated"),
853        !(o || s.cssMode || ("slide" !== s.effect && "fade" !== s.effect)))
854      ) {
855        const t = `${s.containerModifierClass}backface-hidden`,
856          a = e.el.classList.contains(t);
857        p <= s.maxBackfaceHiddenSlides
858          ? a || e.el.classList.add(t)
859          : a && e.el.classList.remove(t);
860      }
861    },
862    updateAutoHeight: function (e) {
863      const t = this,
864        s = [],
865        a = t.virtual && t.params.virtual.enabled;
866      let i,
867        r = 0;
868      "number" == typeof e
869        ? t.setTransition(e)
870        : !0 === e && t.setTransition(t.params.speed);
871      const n = (e) => (a ? t.slides[t.getSlideIndexByData(e)] : t.slides[e]);
872      if ("auto" !== t.params.slidesPerView && t.params.slidesPerView > 1)
873        if (t.params.centeredSlides)
874          (t.visibleSlides || []).forEach((e) => {
875            s.push(e);
876          });
877        else
878          for (i = 0; i < Math.ceil(t.params.slidesPerView); i += 1) {
879            const e = t.activeIndex + i;
880            if (e > t.slides.length && !a) break;
881            s.push(n(e));
882          }
883      else s.push(n(t.activeIndex));
884      for (i = 0; i < s.length; i += 1)
885        if (void 0 !== s[i]) {
886          const e = s[i].offsetHeight;
887          r = e > r ? e : r;
888        }
889      (r || 0 === r) && (t.wrapperEl.style.height = `${r}px`);
890    },
891    updateSlidesOffset: function () {
892      const e = this,
893        t = e.slides,
894        s = e.isElement
895          ? e.isHorizontal()
896            ? e.wrapperEl.offsetLeft
897            : e.wrapperEl.offsetTop
898          : 0;
899      for (let a = 0; a < t.length; a += 1)
900        t[a].swiperSlideOffset =
901          (e.isHorizontal() ? t[a].offsetLeft : t[a].offsetTop) -
902          s -
903          e.cssOverflowAdjustment();
904    },
905    updateSlidesProgress: function (e) {
906      void 0 === e && (e = (this && this.translate) || 0);
907      const t = this,
908        s = t.params,
909        { slides: a, rtlTranslate: i, snapGrid: r } = t;
910      if (0 === a.length) return;
911      void 0 === a[0].swiperSlideOffset && t.updateSlidesOffset();
912      let n = -e;
913      i && (n = e), (t.visibleSlidesIndexes = []), (t.visibleSlides = []);
914      let l = s.spaceBetween;
915      "string" == typeof l && l.indexOf("%") >= 0
916        ? (l = (parseFloat(l.replace("%", "")) / 100) * t.size)
917        : "string" == typeof l && (l = parseFloat(l));
918      for (let e = 0; e < a.length; e += 1) {
919        const o = a[e];
920        let d = o.swiperSlideOffset;
921        s.cssMode && s.centeredSlides && (d -= a[0].swiperSlideOffset);
922        const c =
923            (n + (s.centeredSlides ? t.minTranslate() : 0) - d) /
924            (o.swiperSlideSize + l),
925          p =
926            (n - r[0] + (s.centeredSlides ? t.minTranslate() : 0) - d) /
927            (o.swiperSlideSize + l),
928          u = -(n - d),
929          m = u + t.slidesSizesGrid[e],
930          h = u >= 0 && u <= t.size - t.slidesSizesGrid[e],
931          f =
932            (u >= 0 && u < t.size - 1) ||
933            (m > 1 && m <= t.size) ||
934            (u <= 0 && m >= t.size);
935        f && (t.visibleSlides.push(o), t.visibleSlidesIndexes.push(e)),
936          O(o, f, s.slideVisibleClass),
937          O(o, h, s.slideFullyVisibleClass),
938          (o.progress = i ? -c : c),
939          (o.originalProgress = i ? -p : p);
940      }
941    },
942    updateProgress: function (e) {
943      const t = this;
944      if (void 0 === e) {
945        const s = t.rtlTranslate ? -1 : 1;
946        e = (t && t.translate && t.translate * s) || 0;
947      }
948      const s = t.params,
949        a = t.maxTranslate() - t.minTranslate();
950      let { progress: i, isBeginning: r, isEnd: n, progressLoop: l } = t;
951      const o = r,
952        d = n;
953      if (0 === a) (i = 0), (r = !0), (n = !0);
954      else {
955        i = (e - t.minTranslate()) / a;
956        const s = Math.abs(e - t.minTranslate()) < 1,
957          l = Math.abs(e - t.maxTranslate()) < 1;
958        (r = s || i <= 0), (n = l || i >= 1), s && (i = 0), l && (i = 1);
959      }
960      if (s.loop) {
961        const s = t.getSlideIndexByData(0),
962          a = t.getSlideIndexByData(t.slides.length - 1),
963          i = t.slidesGrid[s],
964          r = t.slidesGrid[a],
965          n = t.slidesGrid[t.slidesGrid.length - 1],
966          o = Math.abs(e);
967        (l = o >= i ? (o - i) / n : (o + n - r) / n), l > 1 && (l -= 1);
968      }
969      Object.assign(t, {
970        progress: i,
971        progressLoop: l,
972        isBeginning: r,
973        isEnd: n,
974      }),
975        (s.watchSlidesProgress || (s.centeredSlides && s.autoHeight)) &&
976          t.updateSlidesProgress(e),
977        r && !o && t.emit("reachBeginning toEdge"),
978        n && !d && t.emit("reachEnd toEdge"),
979        ((o && !r) || (d && !n)) && t.emit("fromEdge"),
980        t.emit("progress", i);
981    },
982    updateSlidesClasses: function () {
983      const e = this,
984        { slides: t, params: s, slidesEl: a, activeIndex: i } = e,
985        r = e.virtual && s.virtual.enabled,
986        n = e.grid && s.grid && s.grid.rows > 1,
987        l = (e) => f(a, `.${s.slideClass}${e}, swiper-slide${e}`)[0];
988      let o, d, c;
989      if (r)
990        if (s.loop) {
991          let t = i - e.virtual.slidesBefore;
992          t < 0 && (t = e.virtual.slides.length + t),
993            t >= e.virtual.slides.length && (t -= e.virtual.slides.length),
994            (o = l(`[data-swiper-slide-index="${t}"]`));
995        } else o = l(`[data-swiper-slide-index="${i}"]`);
996      else
997        n
998          ? ((o = t.find((e) => e.column === i)),
999            (c = t.find((e) => e.column === i + 1)),
1000            (d = t.find((e) => e.column === i - 1)))
1001          : (o = t[i]);
1002      o &&
1003        (n ||
1004          ((c = (function (e, t) {
1005            const s = [];
1006            for (; e.nextElementSibling; ) {
1007              const a = e.nextElementSibling;
1008              t ? a.matches(t) && s.push(a) : s.push(a), (e = a);
1009            }
1010            return s;
1011          })(o, `.${s.slideClass}, swiper-slide`)[0]),
1012          s.loop && !c && (c = t[0]),
1013          (d = (function (e, t) {
1014            const s = [];
1015            for (; e.previousElementSibling; ) {
1016              const a = e.previousElementSibling;
1017              t ? a.matches(t) && s.push(a) : s.push(a), (e = a);
1018            }
1019            return s;
1020          })(o, `.${s.slideClass}, swiper-slide`)[0]),
1021          s.loop && 0 === !d && (d = t[t.length - 1]))),
1022        t.forEach((e) => {
1023          D(e, e === o, s.slideActiveClass),
1024            D(e, e === c, s.slideNextClass),
1025            D(e, e === d, s.slidePrevClass);
1026        }),
1027        e.emitSlidesClasses();
1028    },
1029    updateActiveIndex: function (e) {
1030      const t = this,
1031        s = t.rtlTranslate ? t.translate : -t.translate,
1032        {
1033          snapGrid: a,
1034          params: i,
1035          activeIndex: r,
1036          realIndex: n,
1037          snapIndex: l,
1038        } = t;
1039      let o,
1040        d = e;
1041      const c = (e) => {
1042        let s = e - t.virtual.slidesBefore;
1043        return (
1044          s < 0 && (s = t.virtual.slides.length + s),
1045          s >= t.virtual.slides.length && (s -= t.virtual.slides.length),
1046          s
1047        );
1048      };
1049      if (
1050        (void 0 === d &&
1051          (d = (function (e) {
1052            const { slidesGrid: t, params: s } = e,
1053              a = e.rtlTranslate ? e.translate : -e.translate;
1054            let i;
1055            for (let e = 0; e < t.length; e += 1)
1056              void 0 !== t[e + 1]
1057                ? a >= t[e] && a < t[e + 1] - (t[e + 1] - t[e]) / 2
1058                  ? (i = e)
1059                  : a >= t[e] && a < t[e + 1] && (i = e + 1)
1060                : a >= t[e] && (i = e);
1061            return (
1062              s.normalizeSlideIndex && (i < 0 || void 0 === i) && (i = 0), i
1063            );
1064          })(t)),
1065        a.indexOf(s) >= 0)
1066      )
1067        o = a.indexOf(s);
1068      else {
1069        const e = Math.min(i.slidesPerGroupSkip, d);
1070        o = e + Math.floor((d - e) / i.slidesPerGroup);
1071      }
1072      if ((o >= a.length && (o = a.length - 1), d === r && !t.params.loop))
1073        return void (o !== l && ((t.snapIndex = o), t.emit("snapIndexChange")));
1074      if (d === r && t.params.loop && t.virtual && t.params.virtual.enabled)
1075        return void (t.realIndex = c(d));
1076      const p = t.grid && i.grid && i.grid.rows > 1;
1077      let u;
1078      if (t.virtual && i.virtual.enabled && i.loop) u = c(d);
1079      else if (p) {
1080        const e = t.slides.find((e) => e.column === d);
1081        let s = parseInt(e.getAttribute("data-swiper-slide-index"), 10);
1082        Number.isNaN(s) && (s = Math.max(t.slides.indexOf(e), 0)),
1083          (u = Math.floor(s / i.grid.rows));
1084      } else if (t.slides[d]) {
1085        const e = t.slides[d].getAttribute("data-swiper-slide-index");
1086        u = e ? parseInt(e, 10) : d;
1087      } else u = d;
1088      Object.assign(t, {
1089        previousSnapIndex: l,
1090        snapIndex: o,
1091        previousRealIndex: n,
1092        realIndex: u,
1093        previousIndex: r,
1094        activeIndex: d,
1095      }),
1096        t.initialized && Y(t),
1097        t.emit("activeIndexChange"),
1098        t.emit("snapIndexChange"),
1099        (t.initialized || t.params.runCallbacksOnInit) &&
1100          (n !== u && t.emit("realIndexChange"), t.emit("slideChange"));
1101    },
1102    updateClickedSlide: function (e, t) {
1103      const s = this,
1104        a = s.params;
1105      let i = e.closest(`.${a.slideClass}, swiper-slide`);
1106      !i &&
1107        s.isElement &&
1108        t &&
1109        t.length > 1 &&
1110        t.includes(e) &&
1111        [...t.slice(t.indexOf(e) + 1, t.length)].forEach((e) => {
1112          !i &&
1113            e.matches &&
1114            e.matches(`.${a.slideClass}, swiper-slide`) &&
1115            (i = e);
1116        });
1117      let r,
1118        n = !1;
1119      if (i)
1120        for (let e = 0; e < s.slides.length; e += 1)
1121          if (s.slides[e] === i) {
1122            (n = !0), (r = e);
1123            break;
1124          }
1125      if (!i || !n)
1126        return (s.clickedSlide = void 0), void (s.clickedIndex = void 0);
1127      (s.clickedSlide = i),
1128        s.virtual && s.params.virtual.enabled
1129          ? (s.clickedIndex = parseInt(
1130              i.getAttribute("data-swiper-slide-index"),
1131              10
1132            ))
1133          : (s.clickedIndex = r),
1134        a.slideToClickedSlide &&
1135          void 0 !== s.clickedIndex &&
1136          s.clickedIndex !== s.activeIndex &&
1137          s.slideToClickedSlide();
1138    },
1139  };
1140  var H = {
1141    getTranslate: function (e) {
1142      void 0 === e && (e = this.isHorizontal() ? "x" : "y");
1143      const { params: t, rtlTranslate: s, translate: a, wrapperEl: i } = this;
1144      if (t.virtualTranslate) return s ? -a : a;
1145      if (t.cssMode) return a;
1146      let r = d(i, e);
1147      return (r += this.cssOverflowAdjustment()), s && (r = -r), r || 0;
1148    },
1149    setTranslate: function (e, t) {
1150      const s = this,
1151        { rtlTranslate: a, params: i, wrapperEl: r, progress: n } = s;
1152      let l,
1153        o = 0,
1154        d = 0;
1155      s.isHorizontal() ? (o = a ? -e : e) : (d = e),
1156        i.roundLengths && ((o = Math.floor(o)), (d = Math.floor(d))),
1157        (s.previousTranslate = s.translate),
1158        (s.translate = s.isHorizontal() ? o : d),
1159        i.cssMode
1160          ? (r[s.isHorizontal() ? "scrollLeft" : "scrollTop"] = s.isHorizontal()
1161              ? -o
1162              : -d)
1163          : i.virtualTranslate ||
1164            (s.isHorizontal()
1165              ? (o -= s.cssOverflowAdjustment())
1166              : (d -= s.cssOverflowAdjustment()),
1167            (r.style.transform = `translate3d(${o}px, ${d}px, 0px)`));
1168      const c = s.maxTranslate() - s.minTranslate();
1169      (l = 0 === c ? 0 : (e - s.minTranslate()) / c),
1170        l !== n && s.updateProgress(e),
1171        s.emit("setTranslate", s.translate, t);
1172    },
1173    minTranslate: function () {
1174      return -this.snapGrid[0];
1175    },
1176    maxTranslate: function () {
1177      return -this.snapGrid[this.snapGrid.length - 1];
1178    },
1179    translateTo: function (e, t, s, a, i) {
1180      void 0 === e && (e = 0),
1181        void 0 === t && (t = this.params.speed),
1182        void 0 === s && (s = !0),
1183        void 0 === a && (a = !0);
1184      const r = this,
1185        { params: n, wrapperEl: l } = r;
1186      if (r.animating && n.preventInteractionOnTransition) return !1;
1187      const o = r.minTranslate(),
1188        d = r.maxTranslate();
1189      let c;
1190      if (
1191        ((c = a && e > o ? o : a && e < d ? d : e),
1192        r.updateProgress(c),
1193        n.cssMode)
1194      ) {
1195        const e = r.isHorizontal();
1196        if (0 === t) l[e ? "scrollLeft" : "scrollTop"] = -c;
1197        else {
1198          if (!r.support.smoothScroll)
1199            return (
1200              m({ swiper: r, targetPosition: -c, side: e ? "left" : "top" }), !0
1201            );
1202          l.scrollTo({ [e ? "left" : "top"]: -c, behavior: "smooth" });
1203        }
1204        return !0;
1205      }
1206      return (
1207        0 === t
1208          ? (r.setTransition(0),
1209            r.setTranslate(c),
1210            s &&
1211              (r.emit("beforeTransitionStart", t, i), r.emit("transitionEnd")))
1212          : (r.setTransition(t),
1213            r.setTranslate(c),
1214            s &&
1215              (r.emit("beforeTransitionStart", t, i),
1216              r.emit("transitionStart")),
1217            r.animating ||
1218              ((r.animating = !0),
1219              r.onTranslateToWrapperTransitionEnd ||
1220                (r.onTranslateToWrapperTransitionEnd = function (e) {
1221                  r &&
1222                    !r.destroyed &&
1223                    e.target === this &&
1224                    (r.wrapperEl.removeEventListener(
1225                      "transitionend",
1226                      r.onTranslateToWrapperTransitionEnd
1227                    ),
1228                    (r.onTranslateToWrapperTransitionEnd = null),
1229                    delete r.onTranslateToWrapperTransitionEnd,
1230                    (r.animating = !1),
1231                    s && r.emit("transitionEnd"));
1232                }),
1233              r.wrapperEl.addEventListener(
1234                "transitionend",
1235                r.onTranslateToWrapperTransitionEnd
1236              ))),
1237        !0
1238      );
1239    },
1240  };
1241  function N(e) {
1242    let { swiper: t, runCallbacks: s, direction: a, step: i } = e;
1243    const { activeIndex: r, previousIndex: n } = t;
1244    let l = a;
1245    l || (l = r > n ? "next" : r < n ? "prev" : "reset"),
1246      t.emit(`transition${i}`),
1247      s && "reset" === l
1248        ? t.emit(`slideResetTransition${i}`)
1249        : s &&
1250          r !== n &&
1251          (t.emit(`slideChangeTransition${i}`),
1252          "next" === l
1253            ? t.emit(`slideNextTransition${i}`)
1254            : t.emit(`slidePrevTransition${i}`));
1255  }
1256  var R = {
1257    slideTo: function (e, t, s, a, i) {
1258      void 0 === e && (e = 0),
1259        void 0 === s && (s = !0),
1260        "string" == typeof e && (e = parseInt(e, 10));
1261      const r = this;
1262      let n = e;
1263      n < 0 && (n = 0);
1264      const {
1265        params: l,
1266        snapGrid: o,
1267        slidesGrid: d,
1268        previousIndex: c,
1269        activeIndex: p,
1270        rtlTranslate: u,
1271        wrapperEl: h,
1272        enabled: f,
1273      } = r;
1274      if (
1275        (!f && !a && !i) ||
1276        r.destroyed ||
1277        (r.animating && l.preventInteractionOnTransition)
1278      )
1279        return !1;
1280      void 0 === t && (t = r.params.speed);
1281      const g = Math.min(r.params.slidesPerGroupSkip, n);
1282      let v = g + Math.floor((n - g) / r.params.slidesPerGroup);
1283      v >= o.length && (v = o.length - 1);
1284      const w = -o[v];
1285      if (l.normalizeSlideIndex)
1286        for (let e = 0; e < d.length; e += 1) {
1287          const t = -Math.floor(100 * w),
1288            s = Math.floor(100 * d[e]),
1289            a = Math.floor(100 * d[e + 1]);
1290          void 0 !== d[e + 1]
1291            ? t >= s && t < a - (a - s) / 2
1292              ? (n = e)
1293              : t >= s && t < a && (n = e + 1)
1294            : t >= s && (n = e);
1295        }
1296      if (r.initialized && n !== p) {
1297        if (
1298          !r.allowSlideNext &&
1299          (u
1300            ? w > r.translate && w > r.minTranslate()
1301            : w < r.translate && w < r.minTranslate())
1302        )
1303          return !1;
1304        if (
1305          !r.allowSlidePrev &&
1306          w > r.translate &&
1307          w > r.maxTranslate() &&
1308          (p || 0) !== n
1309        )
1310          return !1;
1311      }
1312      let b;
1313      n !== (c || 0) && s && r.emit("beforeSlideChangeStart"),
1314        r.updateProgress(w),
1315        (b = n > p ? "next" : n < p ? "prev" : "reset");
1316      const y = r.virtual && r.params.virtual.enabled;
1317      if (!(y && i) && ((u && -w === r.translate) || (!u && w === r.translate)))
1318        return (
1319          r.updateActiveIndex(n),
1320          l.autoHeight && r.updateAutoHeight(),
1321          r.updateSlidesClasses(),
1322          "slide" !== l.effect && r.setTranslate(w),
1323          "reset" !== b && (r.transitionStart(s, b), r.transitionEnd(s, b)),
1324          !1
1325        );
1326      if (l.cssMode) {
1327        const e = r.isHorizontal(),
1328          s = u ? w : -w;
1329        if (0 === t)
1330          y &&
1331            ((r.wrapperEl.style.scrollSnapType = "none"),
1332            (r._immediateVirtual = !0)),
1333            y && !r._cssModeVirtualInitialSet && r.params.initialSlide > 0
1334              ? ((r._cssModeVirtualInitialSet = !0),
1335                requestAnimationFrame(() => {
1336                  h[e ? "scrollLeft" : "scrollTop"] = s;
1337                }))
1338              : (h[e ? "scrollLeft" : "scrollTop"] = s),
1339            y &&
1340              requestAnimationFrame(() => {
1341                (r.wrapperEl.style.scrollSnapType = ""),
1342                  (r._immediateVirtual = !1);
1343              });
1344        else {
1345          if (!r.support.smoothScroll)
1346            return (
1347              m({ swiper: r, targetPosition: s, side: e ? "left" : "top" }), !0
1348            );
1349          h.scrollTo({ [e ? "left" : "top"]: s, behavior: "smooth" });
1350        }
1351        return !0;
1352      }
1353      const E = $().isSafari;
1354      return (
1355        y && !i && E && r.isElement && r.virtual.update(!1, !1, n),
1356        r.setTransition(t),
1357        r.setTranslate(w),
1358        r.updateActiveIndex(n),
1359        r.updateSlidesClasses(),
1360        r.emit("beforeTransitionStart", t, a),
1361        r.transitionStart(s, b),
1362        0 === t
1363          ? r.transitionEnd(s, b)
1364          : r.animating ||
1365            ((r.animating = !0),
1366            r.onSlideToWrapperTransitionEnd ||
1367              (r.onSlideToWrapperTransitionEnd = function (e) {
1368                r &&
1369                  !r.destroyed &&
1370                  e.target === this &&
1371                  (r.wrapperEl.removeEventListener(
1372                    "transitionend",
1373                    r.onSlideToWrapperTransitionEnd
1374                  ),
1375                  (r.onSlideToWrapperTransitionEnd = null),
1376                  delete r.onSlideToWrapperTransitionEnd,
1377                  r.transitionEnd(s, b));
1378              }),
1379            r.wrapperEl.addEventListener(
1380              "transitionend",
1381              r.onSlideToWrapperTransitionEnd
1382            )),
1383        !0
1384      );
1385    },
1386    slideToLoop: function (e, t, s, a) {
1387      if (
1388        (void 0 === e && (e = 0),
1389        void 0 === s && (s = !0),
1390        "string" == typeof e)
1391      ) {
1392        e = parseInt(e, 10);
1393      }
1394      const i = this;
1395      if (i.destroyed) return;
1396      void 0 === t && (t = i.params.speed);
1397      const r = i.grid && i.params.grid && i.params.grid.rows > 1;
1398      let n = e;
1399      if (i.params.loop)
1400        if (i.virtual && i.params.virtual.enabled) n += i.virtual.slidesBefore;
1401        else {
1402          let e;
1403          if (r) {
1404            const t = n * i.params.grid.rows;
1405            e = i.slides.find(
1406              (e) => 1 * e.getAttribute("data-swiper-slide-index") === t
1407            ).column;
1408          } else e = i.getSlideIndexByData(n);
1409          const t = r
1410              ? Math.ceil(i.slides.length / i.params.grid.rows)
1411              : i.slides.length,
1412            { centeredSlides: s } = i.params;
1413          let l = i.params.slidesPerView;
1414          "auto" === l
1415            ? (l = i.slidesPerViewDynamic())
1416            : ((l = Math.ceil(parseFloat(i.params.slidesPerView, 10))),
1417              s && l % 2 == 0 && (l += 1));
1418          let o = t - e < l;
1419          if (
1420            (s && (o = o || e < Math.ceil(l / 2)),
1421            a && s && "auto" !== i.params.slidesPerView && !r && (o = !1),
1422            o)
1423          ) {
1424            const a = s
1425              ? e < i.activeIndex
1426                ? "prev"
1427                : "next"
1428              : e - i.activeIndex - 1 < i.params.slidesPerView
1429              ? "next"
1430              : "prev";
1431            i.loopFix({
1432              direction: a,
1433              slideTo: !0,
1434              activeSlideIndex: "next" === a ? e + 1 : e - t + 1,
1435              slideRealIndex: "next" === a ? i.realIndex : void 0,
1436            });
1437          }
1438          if (r) {
1439            const e = n * i.params.grid.rows;
1440            n = i.slides.find(
1441              (t) => 1 * t.getAttribute("data-swiper-slide-index") === e
1442            ).column;
1443          } else n = i.getSlideIndexByData(n);
1444        }
1445      return (
1446        requestAnimationFrame(() => {
1447          i.slideTo(n, t, s, a);
1448        }),
1449        i
1450      );
1451    },
1452    slideNext: function (e, t, s) {
1453      void 0 === t && (t = !0);
1454      const a = this,
1455        { enabled: i, params: r, animating: n } = a;
1456      if (!i || a.destroyed) return a;
1457      void 0 === e && (e = a.params.speed);
1458      let l = r.slidesPerGroup;
1459      "auto" === r.slidesPerView &&
1460        1 === r.slidesPerGroup &&
1461        r.slidesPerGroupAuto &&
1462        (l = Math.max(a.slidesPerViewDynamic("current", !0), 1));
1463      const o = a.activeIndex < r.slidesPerGroupSkip ? 1 : l,
1464        d = a.virtual && r.virtual.enabled;
1465      if (r.loop) {
1466        if (n && !d && r.loopPreventsSliding) return !1;
1467        if (
1468          (a.loopFix({ direction: "next" }),
1469          (a._clientLeft = a.wrapperEl.clientLeft),
1470          a.activeIndex === a.slides.length - 1 && r.cssMode)
1471        )
1472          return (
1473            requestAnimationFrame(() => {
1474              a.slideTo(a.activeIndex + o, e, t, s);
1475            }),
1476            !0
1477          );
1478      }
1479      return r.rewind && a.isEnd
1480        ? a.slideTo(0, e, t, s)
1481        : a.slideTo(a.activeIndex + o, e, t, s);
1482    },
1483    slidePrev: function (e, t, s) {
1484      void 0 === t && (t = !0);
1485      const a = this,
1486        {
1487          params: i,
1488          snapGrid: r,
1489          slidesGrid: n,
1490          rtlTranslate: l,
1491          enabled: o,
1492          animating: d,
1493        } = a;
1494      if (!o || a.destroyed) return a;
1495      void 0 === e && (e = a.params.speed);
1496      const c = a.virtual && i.virtual.enabled;
1497      if (i.loop) {
1498        if (d && !c && i.loopPreventsSliding) return !1;
1499        a.loopFix({ direction: "prev" }),
1500          (a._clientLeft = a.wrapperEl.clientLeft);
1501      }
1502      function p(e) {
1503        return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e);
1504      }
1505      const u = p(l ? a.translate : -a.translate),
1506        m = r.map((e) => p(e)),
1507        h = i.freeMode && i.freeMode.enabled;
1508      let f = r[m.indexOf(u) - 1];
1509      if (void 0 === f && (i.cssMode || h)) {
1510        let e;
1511        r.forEach((t, s) => {
1512          u >= t && (e = s);
1513        }),
1514          void 0 !== e && (f = h ? r[e] : r[e > 0 ? e - 1 : e]);
1515      }
1516      let g = 0;
1517      if (
1518        (void 0 !== f &&
1519          ((g = n.indexOf(f)),
1520          g < 0 && (g = a.activeIndex - 1),
1521          "auto" === i.slidesPerView &&
1522            1 === i.slidesPerGroup &&
1523            i.slidesPerGroupAuto &&
1524            ((g = g - a.slidesPerViewDynamic("previous", !0) + 1),
1525            (g = Math.max(g, 0)))),
1526        i.rewind && a.isBeginning)
1527      ) {
1528        const i =
1529          a.params.virtual && a.params.virtual.enabled && a.virtual
1530            ? a.virtual.slides.length - 1
1531            : a.slides.length - 1;
1532        return a.slideTo(i, e, t, s);
1533      }
1534      return i.loop && 0 === a.activeIndex && i.cssMode
1535        ? (requestAnimationFrame(() => {
1536            a.slideTo(g, e, t, s);
1537          }),
1538          !0)
1539        : a.slideTo(g, e, t, s);
1540    },
1541    slideReset: function (e, t, s) {
1542      void 0 === t && (t = !0);
1543      const a = this;
1544      if (!a.destroyed)
1545        return (
1546          void 0 === e && (e = a.params.speed),
1547          a.slideTo(a.activeIndex, e, t, s)
1548        );
1549    },
1550    slideToClosest: function (e, t, s, a) {
1551      void 0 === t && (t = !0), void 0 === a && (a = 0.5);
1552      const i = this;
1553      if (i.destroyed) return;
1554      void 0 === e && (e = i.params.speed);
1555      let r = i.activeIndex;
1556      const n = Math.min(i.params.slidesPerGroupSkip, r),
1557        l = n + Math.floor((r - n) / i.params.slidesPerGroup),
1558        o = i.rtlTranslate ? i.translate : -i.translate;
1559      if (o >= i.snapGrid[l]) {
1560        const e = i.snapGrid[l];
1561        o - e > (i.snapGrid[l + 1] - e) * a && (r += i.params.slidesPerGroup);
1562      } else {
1563        const e = i.snapGrid[l - 1];
1564        o - e <= (i.snapGrid[l] - e) * a && (r -= i.params.slidesPerGroup);
1565      }
1566      return (
1567        (r = Math.max(r, 0)),
1568        (r = Math.min(r, i.slidesGrid.length - 1)),
1569        i.slideTo(r, e, t, s)
1570      );
1571    },
1572    slideToClickedSlide: function () {
1573      const e = this;
1574      if (e.destroyed) return;
1575      const { params: t, slidesEl: s } = e,
1576        a =
1577          "auto" === t.slidesPerView
1578            ? e.slidesPerViewDynamic()
1579            : t.slidesPerView;
1580      let i,
1581        r = e.getSlideIndexWhenGrid(e.clickedIndex);
1582      const n = e.isElement ? "swiper-slide" : `.${t.slideClass}`,
1583        o = e.grid && e.params.grid && e.params.grid.rows > 1;
1584      if (t.loop) {
1585        if (e.animating) return;
1586        (i = parseInt(
1587          e.clickedSlide.getAttribute("data-swiper-slide-index"),
1588          10
1589        )),
1590          t.centeredSlides
1591            ? e.slideToLoop(i)
1592            : r >
1593              (o
1594                ? (e.slides.length - a) / 2 - (e.params.grid.rows - 1)
1595                : e.slides.length - a)
1596            ? (e.loopFix(),
1597              (r = e.getSlideIndex(
1598                f(s, `${n}[data-swiper-slide-index="${i}"]`)[0]
1599              )),
1600              l(() => {
1601                e.slideTo(r);
1602              }))
1603            : e.slideTo(r);
1604      } else e.slideTo(r);
1605    },
1606  };
1607  var _ = {
1608    loopCreate: function (e, t) {
1609      const s = this,
1610        { params: a, slidesEl: i } = s;
1611      if (!a.loop || (s.virtual && s.params.virtual.enabled)) return;
1612      const r = () => {
1613          f(i, `.${a.slideClass}, swiper-slide`).forEach((e, t) => {
1614            e.setAttribute("data-swiper-slide-index", t);
1615          });
1616        },
1617        n = s.grid && a.grid && a.grid.rows > 1;
1618      a.loopAddBlankSlides &&
1619        (a.slidesPerGroup > 1 || n) &&
1620        (() => {
1621          const e = f(i, `.${a.slideBlankClass}`);
1622          e.forEach((e) => {
1623            e.remove();
1624          }),
1625            e.length > 0 && (s.recalcSlides(), s.updateSlides());
1626        })();
1627      const l = a.slidesPerGroup * (n ? a.grid.rows : 1),
1628        o = s.slides.length % l != 0,
1629        d = n && s.slides.length % a.grid.rows != 0,
1630        c = (e) => {
1631          for (let t = 0; t < e; t += 1) {
1632            const e = s.isElement
1633              ? v("swiper-slide", [a.slideBlankClass])
1634              : v("div", [a.slideClass, a.slideBlankClass]);
1635            s.slidesEl.append(e);
1636          }
1637        };
1638      if (o) {
1639        if (a.loopAddBlankSlides) {
1640          c(l - (s.slides.length % l)), s.recalcSlides(), s.updateSlides();
1641        } else
1642          g(
1643            "Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may 
1643not function properly. You need to add more slides (or make duplicates, or empty slides)"
1644          );
1645        r();
1646      } else if (d) {
1647        if (a.loopAddBlankSlides) {
1648          c(a.grid.rows - (s.slides.length % a.grid.rows)),
1649            s.recalcSlides(),
1650            s.updateSlides();
1651        } else
1652          g(
1653            "Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)"
1654          );
1655        r();
1656      } else r();
1657      s.loopFix({
1658        slideRealIndex: e,
1659        direction: a.centeredSlides ? void 0 : "next",
1660        initial: t,
1661      });
1662    },
1663    loopFix: function (e) {
1664      let {
1665        slideRealIndex: t,
1666        slideTo: s = !0,
1667        direction: a,
1668        setTranslate: i,
1669        activeSlideIndex: r,
1670        initial: n,
1671        byController: l,
1672        byMousewheel: o,
1673      } = void 0 === e ? {} : e;
1674      const d = this;
1675      if (!d.params.loop) return;
1676      d.emit("beforeLoopFix");
1677      const {
1678          slides: c,
1679          allowSlidePrev: p,
1680          allowSlideNext: u,
1681          slidesEl: m,
1682          params: h,
1683        } = d,
1684        { centeredSlides: f, initialSlide: v } = h;
1685      if (
1686        ((d.allowSlidePrev = !0),
1687        (d.allowSlideNext = !0),
1688        d.virtual && h.virtual.enabled)
1689      )
1690        return (
1691          s &&
1692            (h.centeredSlides || 0 !== d.snapIndex
1693              ? h.centeredSlides && d.snapIndex < h.slidesPerView
1694                ? d.slideTo(d.virtual.slides.length + d.snapIndex, 0, !1, !0)
1695                : d.snapIndex === d.snapGrid.length - 1 &&
1696                  d.slideTo(d.virtual.slidesBefore, 0, !1, !0)
1697              : d.slideTo(d.virtual.slides.length, 0, !1, !0)),
1698          (d.allowSlidePrev = p),
1699          (d.allowSlideNext = u),
1700          void d.emit("loopFix")
1701        );
1702      let w = h.slidesPerView;
1703      "auto" === w
1704        ? (w = d.slidesPerViewDynamic())
1705        : ((w = Math.ceil(parseFloat(h.slidesPerView, 10))),
1706          f && w % 2 == 0 && (w += 1));
1707      const b = h.slidesPerGroupAuto ? w : h.slidesPerGroup;
1708      let y = f ? Math.max(b, Math.ceil(w / 2)) : b;
1709      y % b != 0 && (y += b - (y % b)),
1710        (y += h.loopAdditionalSlides),
1711        (d.loopedSlides = y);
1712      const E = d.grid && h.grid && h.grid.rows > 1;
1713      c.length < w + y || ("cards" === d.params.effect && c.length < w + 2 * y)
1714        ? g(
1715            "Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters"
1716          )
1717        : E &&
1718          "row" === h.grid.fill &&
1719          g(
1720            "Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`"
1721          );
1722      const x = [],
1723        S = [],
1724        T = E ? Math.ceil(c.length / h.grid.rows) : c.length,
1725        M = n && T - v < w && !f;
1726      let C = M ? v : d.activeIndex;
1727      void 0 === r
1728        ? (r = d.getSlideIndex(
1729            c.find((e) => e.classList.contains(h.slideActiveClass))
1730          ))
1731        : (C = r);
1732      const P = "next" === a || !a,
1733        L = "prev" === a || !a;
1734      let I = 0,
1735        z = 0;
1736      const A = (E ? c[r].column : r) + (f && void 0 === i ? -w / 2 + 0.5 : 0);
1737      if (A < y) {
1738        I = Math.max(y - A, b);
1739        for (let e = 0; e < y - A; e += 1) {
1740          const t = e - Math.floor(e / T) * T;
1741          if (E) {
1742            const e = T - t - 1;
1743            for (let t = c.length - 1; t >= 0; t -= 1)
1744              c[t].column === e && x.push(t);
1745          } else x.push(T - t - 1);
1746        }
1747      } else if (A + w > T - y) {
1748        (z = Math.max(A - (T - 2 * y), b)),
1749          M && (z = Math.max(z, w - T + v + 1));
1750        for (let e = 0; e < z; e += 1) {
1751          const t = e - Math.floor(e / T) * T;
1752          E
1753            ? c.forEach((e, s) => {
1754                e.column === t && S.push(s);
1755              })
1756            : S.push(t);
1757        }
1758      }
1759      if (
1760        ((d.__preventObserver__ = !0),
1761        requestAnimationFrame(() => {
1762          d.__preventObserver__ = !1;
1763        }),
1764        "cards" === d.params.effect &&
1765          c.length < w + 2 * y &&
1766          (S.includes(r) && S.splice(S.indexOf(r), 1),
1767          x.includes(r) && x.splice(x.indexOf(r), 1)),
1768        L &&
1769          x.forEach((e) => {
1770            (c[e].swiperLoopMoveDOM = !0),
1771              m.prepend(c[e]),
1772              (c[e].swiperLoopMoveDOM = !1);
1773          }),
1774        P &&
1775          S.forEach((e) => {
1776            (c[e].swiperLoopMoveDOM = !0),
1777              m.append(c[e]),
1778              (c[e].swiperLoopMoveDOM = !1);
1779          }),
1780        d.recalcSlides(),
1781        "auto" === h.slidesPerView
1782          ? d.updateSlides()
1783          : E &&
1784            ((x.length > 0 && L) || (S.length > 0 && P)) &&
1785            d.slides.forEach((e, t) => {
1786              d.grid.updateSlide(t, e, d.slides);
1787            }),
1788        h.watchSlidesProgress && d.updateSlidesOffset(),
1789        s)
1790      )
1791        if (x.length > 0 && L) {
1792          if (void 0 === t) {
1793            const e = d.slidesGrid[C],
1794              t = d.slidesGrid[C + I] - e;
1795            o
1796              ? d.setTranslate(d.translate - t)
1797              : (d.slideTo(C + Math.ceil(I), 0, !1, !0),
1798                i &&
1799                  ((d.touchEventsData.startTranslate =
1800                    d.touchEventsData.startTranslate - t),
1801                  (d.touchEventsData.currentTranslate =
1802                    d.touchEventsData.currentTranslate - t)));
1803          } else if (i) {
1804            const e = E ? x.length / h.grid.rows : x.length;
1805            d.slideTo(d.activeIndex + e, 0, !1, !0),
1806              (d.touchEventsData.currentTranslate = d.translate);
1807          }
1808        } else if (S.length > 0 && P)
1809          if (void 0 === t) {
1810            const e = d.slidesGrid[C],
1811              t = d.slidesGrid[C - z] - e;
1812            o
1813              ? d.setTranslate(d.translate - t)
1814              : (d.slideTo(C - z, 0, !1, !0),
1815                i &&
1816                  ((d.touchEventsData.startTranslate =
1817                    d.touchEventsData.startTranslate - t),
1818                  (d.touchEventsData.currentTranslate =
1819                    d.touchEventsData.currentTranslate - t)));
1820          } else {
1821            const e = E ? S.length / h.grid.rows : S.length;
1822            d.slideTo(d.activeIndex - e, 0, !1, !0);
1823          }
1824      if (
1825        ((d.allowSlidePrev = p),
1826        (d.allowSlideNext = u),
1827        d.controller && d.controller.control && !l)
1828      ) {
1829        const e = {
1830          slideRealIndex: t,
1831          direction: a,
1832          setTranslate: i,
1833          activeSlideIndex: r,
1834          byController: !0,
1835        };
1836        Array.isArray(d.controller.control)
1837          ? d.controller.control.forEach((t) => {
1838              !t.destroyed &&
1839                t.params.loop &&
1840                t.loopFix({
1841                  ...e,
1842                  slideTo: t.params.slidesPerView === h.slidesPerView && s,
1843                });
1844            })
1845          : d.controller.control instanceof d.constructor &&
1846            d.controller.control.params.loop &&
1847            d.controller.control.loopFix({
1848              ...e,
1849              slideTo:
1850                d.controller.control.params.slidesPerView === h.slidesPerView &&
1851                s,
1852            });
1853      }
1854      d.emit("loopFix");
1855    },
1856    loopDestroy: function () {
1857      const e = this,
1858        { params: t, slidesEl: s } = e;
1859      if (!t.loop || !s || (e.virtual && e.params.virtual.enabled)) return;
1860      e.recalcSlides();
1861      const a = [];
1862      e.slides.forEach((e) => {
1863        const t =
1864          void 0 === e.swiperSlideIndex
1865            ? 1 * e.getAttribute("data-swiper-slide-index")
1866            : e.swiperSlideIndex;
1867        a[t] = e;
1868      }),
1869        e.slides.forEach((e) => {
1870          e.removeAttribute("data-swiper-slide-index");
1871        }),
1872        a.forEach((e) => {
1873          s.append(e);
1874        }),
1875        e.recalcSlides(),
1876        e.slideTo(e.realIndex, 0);
1877    },
1878  };
1879  function q(e, t, s) {
1880    const a = r(),
1881      { params: i } = e,
1882      n = i.edgeSwipeDetection,
1883      l = i.edgeSwipeThreshold;
1884    return (
1885      !n ||
1886      !(s <= l || s >= a.innerWidth - l) ||
1887      ("prevent" === n && (t.preventDefault(), !0))
1888    );
1889  }
1890  function V(e) {
1891    const t = this,
1892      s = a();
1893    let i = e;
1894    i.originalEvent && (i = i.originalEvent);
1895    const n = t.touchEventsData;
1896    if ("pointerdown" === i.type) {
1897      if (null !== n.pointerId && n.pointerId !== i.pointerId) return;
1898      n.pointerId = i.pointerId;
1899    } else
1900      "touchstart" === i.type &&
1901        1 === i.targetTouches.length &&
1902        (n.touchId = i.targetTouches[0].identifier);
1903    if ("touchstart" === i.type) return void q(t, i, i.targetTouches[0].pageX);
1904    const { params: l, touches: d, enabled: c } = t;
1905    if (!c) return;
1906    if (!l.simulateTouch && "mouse" === i.pointerType) return;
1907    if (t.animating && l.preventInteractionOnTransition) return;
1908    !t.animating && l.cssMode && l.loop && t.loopFix();
1909    let p = i.target;
1910    if (
1911      "wrapper" === l.touchEventsTarget &&
1912      !(function (e, t) {
1913        const s = r();
1914        let a = t.contains(e);
1915        !a &&
1916          s.HTMLSlotElement &&
1917          t instanceof HTMLSlotElement &&
1918          ((a = [...t.assignedElements()].includes(e)),
1919          a ||
1920            (a = (function (e, t) {
1921              const s = [t];
1922              for (; s.length > 0; ) {
1923                const t = s.shift();
1924                if (e === t) return !0;
1925                s.push(
1926                  ...t.children,
1927                  ...(t.shadowRoot ? t.shadowRoot.children : []),
1928                  ...(t.assignedElements ? t.assignedElements() : [])
1929                );
1930              }
1931            })(e, t)));
1932        return a;
1933      })(p, t.wrapperEl)
1934    )
1935      return;
1936    if ("which" in i && 3 === i.which) return;
1937    if ("button" in i && i.button > 0) return;
1938    if (n.isTouched && n.isMoved) return;
1939    const u = !!l.noSwipingClass && "" !== l.noSwipingClass,
1940      m = i.composedPath ? i.composedPath() : i.path;
1941    u && i.target && i.target.shadowRoot && m && (p = m[0]);
1942    const h = l.noSwipingSelector
1943        ? l.noSwipingSelector
1944        : `.${l.noSwipingClass}`,
1945      f = !(!i.target || !i.target.shadowRoot);
1946    if (
1947      l.noSwiping &&
1948      (f
1949        ? (function (e, t) {
1950            return (
1951              void 0 === t && (t = this),
1952              (function t(s) {
1953                if (!s || s === a() || s === r()) return null;
1954                s.assignedSlot && (s = s.assignedSlot);
1955                const i = s.closest(e);
1956                return i || s.getRootNode ? i || t(s.getRootNode().host) : null;
1957              })(t)
1958            );
1959          })(h, p)
1960        : p.closest(h))
1961    )
1962      return void (t.allowClick = !0);
1963    if (l.swipeHandler && !p.closest(l.swipeHandler)) return;
1964    (d.currentX = i.pageX), (d.currentY = i.pageY);
1965    const g = d.currentX,
1966      v = d.currentY;
1967    if (!q(t, i, g)) return;
1968    Object.assign(n, {
1969      isTouched: !0,
1970      isMoved: !1,
1971      allowTouchCallbacks: !0,
1972      isScrolling: void 0,
1973      startMoving: void 0,
1974    }),
1975      (d.startX = g),
1976      (d.startY = v),
1977      (n.touchStartTime = o()),
1978      (t.allowClick = !0),
1979      t.updateSize(),
1980      (t.swipeDirection = void 0),
1981      l.threshold > 0 && (n.allowThresholdMove = !1);
1982    let w = !0;
1983    p.matches(n.focusableElements) &&
1984      ((w = !1), "SELECT" === p.nodeName && (n.isTouched = !1)),
1985      s.activeElement &&
1986        s.activeElement.matches(n.focusableElements) &&
1987        s.activeElement !== p &&
1988        ("mouse" === i.pointerType ||
1989          ("mouse" !== i.pointerType && !p.matches(n.focusableElements))) &&
1990        s.activeElement.blur();
1991    const b = w && t.allowTouchMove && l.touchStartPreventDefault;
1992    (!l.touchStartForcePreventDefault && !b) ||
1993      p.isContentEditable ||
1994      i.preventDefault(),
1995      l.freeMode &&
1996        l.freeMode.enabled &&
1997        t.freeMode &&
1998        t.animating &&
1999        !l.cssMode &&
2000        t.freeMode.onTouchStart(),
2001      t.emit("touchStart", i);
2002  }
2003  function F(e) {
2004    const t = a(),
2005      s = this,
2006      i = s.touchEventsData,
2007      { params: r, touches: n, rtlTranslate: l, enabled: d } = s;
2008    if (!d) return;
2009    if (!r.simulateTouch && "mouse" === e.pointerType) return;
2010    let c,
2011      p = e;
2012    if ((p.originalEvent && (p = p.originalEvent), "pointermove" === p.type)) {
2013      if (null !== i.touchId) return;
2014      if (p.pointerId !== i.pointerId) return;
2015    }
2016    if ("touchmove" === p.type) {
2017      if (
2018        ((c = [...p.changedTouches].find((e) => e.identifier === i.touchId)),
2019        !c || c.identifier !== i.touchId)
2020      )
2021        return;
2022    } else c = p;
2023    if (!i.isTouched)
2024      return void (
2025        i.startMoving &&
2026        i.isScrolling &&
2027        s.emit("touchMoveOpposite", p)
2028      );
2029    const u = c.pageX,
2030      m = c.pageY;
2031    if (p.preventedByNestedSwiper) return (n.startX = u), void (n.startY = m);
2032    if (!s.allowTouchMove)
2033      return (
2034        p.target.matches(i.focusableElements) || (s.allowClick = !1),
2035        void (
2036          i.isTouched &&
2037          (Object.assign(n, { startX: u, startY: m, currentX: u, currentY: m }),
2038          (i.touchStartTime = o()))
2039        )
2040      );
2041    if (r.touchReleaseOnEdges && !r.loop)
2042      if (s.isVertical()) {
2043        if (
2044          (m < n.startY && s.translate <= s.maxTranslate()) ||
2045          (m > n.startY && s.translate >= s.minTranslate())
2046        )
2047          return (i.isTouched = !1), void (i.isMoved = !1);
2048      } else {
2049        if (
2050          l &&
2051          ((u > n.startX && -s.translate <= s.maxTranslate()) ||
2052            (u < n.startX && -s.translate >= s.minTranslate()))
2053        )
2054          return;
2055        if (
2056          !l &&
2057          ((u < n.startX && s.translate <= s.maxTranslate()) ||
2058            (u > n.startX && s.translate >= s.minTranslate()))
2059        )
2060          return;
2061      }
2062    if (
2063      (t.activeElement &&
2064        t.activeElement.matches(i.focusableElements) &&
2065        t.activeElement !== p.target &&
2066        "mouse" !== p.pointerType &&
2067        t.activeElement.blur(),
2068      t.activeElement &&
2069        p.target === t.activeElement &&
2070        p.target.matches(i.focusableElements))
2071    )
2072      return (i.isMoved = !0), void (s.allowClick = !1);
2073    i.allowTouchCallbacks && s.emit("touchMove", p),
2074      (n.previousX = n.currentX),
2075      (n.previousY = n.currentY),
2076      (n.currentX = u),
2077      (n.currentY = m);
2078    const h = n.currentX - n.startX,
2079      f = n.currentY - n.startY;
2080    if (s.params.threshold && Math.sqrt(h ** 2 + f ** 2) < s.params.threshold)
2081      return;
2082    if (void 0 === i.isScrolling) {
2083      let e;
2084      (s.isHorizontal() && n.currentY === n.startY) ||
2085      (s.isVertical() && n.currentX === n.startX)
2086        ? (i.isScrolling = !1)
2087        : h * h + f * f >= 25 &&
2088          ((e = (180 * Math.atan2(Math.abs(f), Math.abs(h))) / Math.PI),
2089          (i.isScrolling = s.isHorizontal()
2090            ? e > r.touchAngle
2091            : 90 - e > r.touchAngle));
2092    }
2093    if (
2094      (i.isScrolling && s.emit("touchMoveOpposite", p),
2095      void 0 === i.startMoving &&
2096        ((n.currentX === n.startX && n.currentY === n.startY) ||
2097          (i.startMoving = !0)),
2098      i.isScrolling ||
2099        ("touchmove" === p.type && i.preventTouchMoveFromPointerMove))
2100    )
2101      return void (i.isTouched = !1);
2102    if (!i.startMoving) return;
2103    (s.allowClick = !1),
2104      !r.cssMode && p.cancelable && p.preventDefault(),
2105      r.touchMoveStopPropagation && !r.nested && p.stopPropagation();
2106    let g = s.isHorizontal() ? h : f,
2107      v = s.isHorizontal()
2108        ? n.currentX - n.previousX
2109        : n.currentY - n.previousY;
2110    r.oneWayMovement &&
2111      ((g = Math.abs(g) * (l ? 1 : -1)), (v = Math.abs(v) * (l ? 1 : -1))),
2112      (n.diff = g),
2113      (g *= r.touchRatio),
2114      l && ((g = -g), (v = -v));
2115    const w = s.touchesDirection;
2116    (s.swipeDirection = g > 0 ? "prev" : "next"),
2117      (s.touchesDirection = v > 0 ? "prev" : "next");
2118    const b = s.params.loop && !r.cssMode,
2119      y =
2120        ("next" === s.touchesDirection && s.allowSlideNext) ||
2121        ("prev" === s.touchesDirection && s.allowSlidePrev);
2122    if (!i.isMoved) {
2123      if (
2124        (b && y && s.loopFix({ direction: s.swipeDirection }),
2125        (i.startTranslate = s.getTranslate()),
2126        s.setTransition(0),
2127        s.animating)
2128      ) {
2129        const e = new window.CustomEvent("transitionend", {
2130          bubbles: !0,
2131          cancelable: !0,
2132          detail: { bySwiperTouchMove: !0 },
2133        });
2134        s.wrapperEl.dispatchEvent(e);
2135      }
2136      (i.allowMomentumBounce = !1),
2137        !r.grabCursor ||
2138          (!0 !== s.allowSlideNext && !0 !== s.allowSlidePrev) ||
2139          s.setGrabCursor(!0),
2140        s.emit("sliderFirstMove", p);
2141    }
2142    if (
2143      (new Date().getTime(),
2144      !1 !== r._loopSwapReset &&
2145        i.isMoved &&
2146        i.allowThresholdMove &&
2147        w !== s.touchesDirection &&
2148        b &&
2149        y &&
2150        Math.abs(g) >= 1)
2151    )
2152      return (
2153        Object.assign(n, {
2154          startX: u,
2155          startY: m,
2156          currentX: u,
2157          currentY: m,
2158          startTranslate: i.currentTranslate,
2159        }),
2160        (i.loopSwapReset = !0),
2161        void (i.startTranslate = i.currentTranslate)
2162      );
2163    s.emit("sliderMove", p),
2164      (i.isMoved = !0),
2165      (i.currentTranslate = g + i.startTranslate);
2166    let E = !0,
2167      x = r.resistanceRatio;
2168    if (
2169      (r.touchReleaseOnEdges && (x = 0),
2170      g > 0
2171        ? (b &&
2172            y &&
2173            i.allowThresholdMove &&
2174            i.currentTranslate >
2175              (r.centeredSlides
2176                ? s.minTranslate() -
2177                  s.slidesSizesGrid[s.activeIndex + 1] -
2178                  ("auto" !== r.slidesPerView &&
2179                  s.slides.length - r.slidesPerView >= 2
2180                    ? s.slidesSizesGrid[s.activeIndex + 1] +
2181                      s.params.spaceBetween
2182                    : 0) -
2183                  s.params.spaceBetween
2184                : s.minTranslate()) &&
2185            s.loopFix({
2186              direction: "prev",
2187              setTranslate: !0,
2188              activeSlideIndex: 0,
2189            }),
2190          i.currentTranslate > s.minTranslate() &&
2191            ((E = !1),
2192            r.resistance &&
2193              (i.currentTranslate =
2194                s.minTranslate() -
2195                1 +
2196                (-s.minTranslate() + i.startTranslate + g) ** x)))
2197        : g < 0 &&
2198          (b &&
2199            y &&
2200            i.allowThresholdMove &&
2201            i.currentTranslate <
2202              (r.centeredSlides
2203                ? s.maxTranslate() +
2204                  s.slidesSizesGrid[s.slidesSizesGrid.length - 1] +
2205                  s.params.spaceBetween +
2206                  ("auto" !== r.slidesPerView &&
2207                  s.slides.length - r.slidesPerView >= 2
2208                    ? s.slidesSizesGrid[s.slidesSizesGrid.length - 1] +
2209                      s.params.spaceBetween
2210                    : 0)
2211                : s.maxTranslate()) &&
2212            s.loopFix({
2213              direction: "next",
2214              setTranslate: !0,
2215              activeSlideIndex:
2216                s.slides.length -
2217                ("auto" === r.slidesPerView
2218                  ? s.slidesPerViewDynamic()
2219                  : Math.ceil(parseFloat(r.slidesPerView, 10))),
2220            }),
2221          i.currentTranslate < s.maxTranslate() &&
2222            ((E = !1),
2223            r.resistance &&
2224              (i.currentTranslate =
2225                s.maxTranslate() +
2226                1 -
2227                (s.maxTranslate() - i.startTranslate - g) ** x))),
2228      E && (p.preventedByNestedSwiper = !0),
2229      !s.allowSlideNext &&
2230        "next" === s.swipeDirection &&
2231        i.currentTranslate < i.startTranslate &&
2232        (i.currentTranslate = i.startTranslate),
2233      !s.allowSlidePrev &&
2234        "prev" === s.swipeDirection &&
2235        i.currentTranslate > i.startTranslate &&
2236        (i.currentTranslate = i.startTranslate),
2237      s.allowSlidePrev ||
2238        s.allowSlideNext ||
2239        (i.currentTranslate = i.startTranslate),
2240      r.threshold > 0)
2241    ) {
2242      if (!(Math.abs(g) > r.threshold || i.allowThresholdMove))
2243        return void (i.currentTranslate = i.startTranslate);
2244      if (!i.allowThresholdMove)
2245        return (
2246          (i.allowThresholdMove = !0),
2247          (n.startX = n.currentX),
2248          (n.startY = n.currentY),
2249          (i.currentTranslate = i.startTranslate),
2250          void (n.diff = s.isHorizontal()
2251            ? n.currentX - n.startX
2252            : n.currentY - n.startY)
2253        );
2254    }
2255    r.followFinger &&
2256      !r.cssMode &&
2257      (((r.freeMode && r.freeMode.enabled && s.freeMode) ||
2258        r.watchSlidesProgress) &&
2259        (s.updateActiveIndex(), s.updateSlidesClasses()),
2260      r.freeMode &&
2261        r.freeMode.enabled &&
2262        s.freeMode &&
2263        s.freeMode.onTouchMove(),
2264      s.updateProgress(i.currentTranslate),
2265      s.setTranslate(i.currentTranslate));
2266  }
2267  function W(e) {
2268    const t = this,
2269      s = t.touchEventsData;
2270    let a,
2271      i = e;
2272    i.originalEvent && (i = i.originalEvent);
2273    if ("touchend" === i.type || "touchcancel" === i.type) {
2274      if (
2275        ((a = [...i.changedTouches].find((e) => e.identifier === s.touchId)),
2276        !a || a.identifier !== s.touchId)
2277      )
2278        return;
2279    } else {
2280      if (null !== s.touchId) return;
2281      if (i.pointerId !== s.pointerId) return;
2282      a = i;
2283    }
2284    if (
2285      ["pointercancel", "pointerout", "pointerleave", "contextmenu"].includes(
2286        i.type
2287      )
2288    ) {
2289      if (
2290        !(
2291          ["pointercancel", "contextmenu"].includes(i.type) &&
2292          (t.browser.isSafari || t.browser.isWebView)
2293        )
2294      )
2295        return;
2296    }
2297    (s.pointerId = null), (s.touchId = null);
2298    const {
2299      params: r,
2300      touches: n,
2301      rtlTranslate: d,
2302      slidesGrid: c,
2303      enabled: p,
2304    } = t;
2305    if (!p) return;
2306    if (!r.simulateTouch && "mouse" === i.pointerType) return;
2307    if (
2308      (s.allowTouchCallbacks && t.emit("touchEnd", i),
2309      (s.allowTouchCallbacks = !1),
2310      !s.isTouched)
2311    )
2312      return (
2313        s.isMoved && r.grabCursor && t.setGrabCursor(!1),
2314        (s.isMoved = !1),
2315        void (s.startMoving = !1)
2316      );
2317    r.grabCursor &&
2318      s.isMoved &&
2319      s.isTouched &&
2320      (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) &&
2321      t.setGrabCursor(!1);
2322    const u = o(),
2323      m = u - s.touchStartTime;
2324    if (t.allowClick) {
2325      const e = i.path || (i.composedPath && i.composedPath());
2326      t.updateClickedSlide((e && e[0]) || i.target, e),
2327        t.emit("tap click", i),
2328        m < 300 &&
2329          u - s.lastClickTime < 300 &&
2330          t.emit("doubleTap doubleClick", i);
2331    }
2332    if (
2333      ((s.lastClickTime = o()),
2334      l(() => {
2335        t.destroyed || (t.allowClick = !0);
2336      }),
2337      !s.isTouched ||
2338        !s.isMoved ||
2339        !t.swipeDirection ||
2340        (0 === n.diff && !s.loopSwapReset) ||
2341        (s.currentTranslate === s.startTranslate && !s.loopSwapReset))
2342    )
2343      return (s.isTouched = !1), (s.isMoved = !1), void (s.startMoving = !1);
2344    let h;
2345    if (
2346      ((s.isTouched = !1),
2347      (s.isMoved = !1),
2348      (s.startMoving = !1),
2349      (h = r.followFinger
2350        ? d
2351          ? t.translate
2352          : -t.translate
2353        : -s.currentTranslate),
2354      r.cssMode)
2355    )
2356      return;
2357    if (r.freeMode && r.freeMode.enabled)
2358      return void t.freeMode.onTouchEnd({ currentPos: h });
2359    const f = h >= -t.maxTranslate() && !t.params.loop;
2360    let g = 0,
2361      v = t.slidesSizesGrid[0];
2362    for (
2363      let e = 0;
2364      e < c.length;
2365      e += e < r.slidesPerGroupSkip ? 1 : r.slidesPerGroup
2366    ) {
2367      const t = e < r.slidesPerGroupSkip - 1 ? 1 : r.slidesPerGroup;
2368      void 0 !== c[e + t]
2369        ? (f || (h >= c[e] && h < c[e + t])) && ((g = e), (v = c[e + t] - c[e]))
2370        : (f || h >= c[e]) &&
2371          ((g = e), (v = c[c.length - 1] - c[c.length - 2]));
2372    }
2373    let w = null,
2374      b = null;
2375    r.rewind &&
2376      (t.isBeginning
2377        ? (b =
2378            r.virtual && r.virtual.enabled && t.virtual
2379              ? t.virtual.slides.length - 1
2380              : t.slides.length - 1)
2381        : t.isEnd && (w = 0));
2382    const y = (h - c[g]) / v,
2383      E = g < r.slidesPerGroupSkip - 1 ? 1 : r.slidesPerGroup;
2384    if (m > r.longSwipesMs) {
2385      if (!r.longSwipes) return void t.slideTo(t.activeIndex);
2386      "next" === t.swipeDirection &&
2387        (y >= r.longSwipesRatio
2388          ? t.slideTo(r.rewind && t.isEnd ? w : g + E)
2389          : t.slideTo(g)),
2390        "prev" === t.swipeDirection &&
2391          (y > 1 - r.longSwipesRatio
2392            ? t.slideTo(g + E)
2393            : null !== b && y < 0 && Math.abs(y) > r.longSwipesRatio
2394            ? t.slideTo(b)
2395            : t.slideTo(g));
2396    } else {
2397      if (!r.shortSwipes) return void t.slideTo(t.activeIndex);
2398      t.navigation &&
2399      (i.target === t.navigation.nextEl || i.target === t.navigation.prevEl)
2400        ? i.target === t.navigation.nextEl
2401          ? t.slideTo(g + E)
2402          : t.slideTo(g)
2403        : ("next" === t.swipeDirection && t.slideTo(null !== w ? w : g + E),
2404          "prev" === t.swipeDirection && t.slideTo(null !== b ? b : g));
2405    }
2406  }
2407  function j() {
2408    const e = this,
2409      { params: t, el: s } = e;
2410    if (s && 0 === s.offsetWidth) return;
2411    t.breakpoints && e.setBreakpoint();
2412    const { allowSlideNext: a, allowSlidePrev: i, snapGrid: r } = e,
2413      n = e.virtual && e.params.virtual.enabled;
2414    (e.allowSlideNext = !0),
2415      (e.allowSlidePrev = !0),
2416      e.updateSize(),
2417      e.updateSlides(),
2418      e.updateSlidesClasses();
2419    const l = n && t.loop;
2420    !("auto" === t.slidesPerView || t.slidesPerView > 1) ||
2421    !e.isEnd ||
2422    e.isBeginning ||
2423    e.params.centeredSlides ||
2424    l
2425      ? e.params.loop && !n
2426        ? e.slideToLoop(e.realIndex, 0, !1, !0)
2427        : e.slideTo(e.activeIndex, 0, !1, !0)
2428      : e.slideTo(e.slides.length - 1, 0, !1, !0),
2429      e.autoplay &&
2430        e.autoplay.running &&
2431        e.autoplay.paused &&
2432        (clearTimeout(e.autoplay.resizeTimeout),
2433        (e.autoplay.resizeTimeout = setTimeout(() => {
2434          e.autoplay &&
2435            e.autoplay.running &&
2436            e.autoplay.paused &&
2437            e.autoplay.resume();
2438        }, 500))),
2439      (e.allowSlidePrev = i),
2440      (e.allowSlideNext = a),
2441      e.params.watchOverflow && r !== e.snapGrid && e.checkOverflow();
2442  }
2443  function U(e) {
2444    const t = this;
2445    t.enabled &&
2446      (t.allowClick ||
2447        (t.params.preventClicks && e.preventDefault(),
2448        t.params.preventClicksPropagation &&
2449          t.animating &&
2450          (e.stopPropagation(), e.stopImmediatePropagation())));
2451  }
2452  function K() {
2453    const e = this,
2454      { wrapperEl: t, rtlTranslate: s, enabled: a } = e;
2455    if (!a) return;
2456    let i;
2457    (e.previousTranslate = e.translate),
2458      e.isHorizontal()
2459        ? (e.translate = -t.scrollLeft)
2460        : (e.translate = -t.scrollTop),
2461      0 === e.translate && (e.translate = 0),
2462      e.updateActiveIndex(),
2463      e.updateSlidesClasses();
2464    const r = e.maxTranslate() - e.minTranslate();
2465    (i = 0 === r ? 0 : (e.translate - e.minTranslate()) / r),
2466      i !== e.progress && e.updateProgress(s ? -e.translate : e.translate),
2467      e.emit("setTranslate", e.translate, !1);
2468  }
2469  function Z(e) {
2470    const t = this;
2471    G(t, e.target),
2472      t.params.cssMode ||
2473        ("auto" !== t.params.slidesPerView && !t.params.autoHeight) ||
2474        t.update();
2475  }
2476  function Q() {
2477    const e = this;
2478    e.documentTouchHandlerProceeded ||
2479      ((e.documentTouchHandlerProceeded = !0),
2480      e.params.touchReleaseOnEdges && (e.el.style.touchAction = "auto"));
2481  }
2482  const J = (e, t) => {
2483    const s = a(),
2484      { params: i, el: r, wrapperEl: n, device: l } = e,
2485      o = !!i.nested,
2486      d = "on" === t ? "addEventListener" : "removeEventListener",
2487      c = t;
2488    r &&
2489      "string" != typeof r &&
2490      (s[d]("touchstart", e.onDocumentTouchStart, { passive: !1, capture: o }),
2491      r[d]("touchstart", e.onTouchStart, { passive: !1 }),
2492      r[d]("pointerdown", e.onTouchStart, { passive: !1 }),
2493      s[d]("touchmove", e.onTouchMove, { passive: !1, capture: o }),
2494      s[d]("pointermove", e.onTouchMove, { passive: !1, capture: o }),
2495      s[d]("touchend", e.onTouchEnd, { passive: !0 }),
2496      s[d]("pointerup", e.onTouchEnd, { passive: !0 }),
2497      s[d]("pointercancel", e.onTouchEnd, { passive: !0 }),
2498      s[d]("touchcancel", e.onTouchEnd, { passive: !0 }),
2499      s[d]("pointerout", e.onTouchEnd, { passive: !0 }),
2500      s[d]("pointerleave", e.onTouchEnd, { passive: !0 }),
2501      s[d]("contextmenu", e.onTouchEnd, { passive: !0 }),
2502      (i.preventClicks || i.preventClicksPropagation) &&
2503        r[d]("click", e.onClick, !0),
2504      i.cssMode && n[d]("scroll", e.onScroll),
2505      i.updateOnWindowResize
2506        ? e[c](
2507            l.ios || l.android
2508              ? "resize orientationchange observerUpdate"
2509              : "resize observerUpdate",
2510            j,
2511            !0
2512          )
2513        : e[c]("observerUpdate", j, !0),
2514      r[d]("load", e.onLoad, { capture: !0 }));
2515  };
2516  const ee = (e, t) => e.grid && t.grid && t.grid.rows > 1;
2517  var te = {
2518    init: !0,
2519    direction: "horizontal",
2520    oneWayMovement: !1,
2521    swiperElementNodeName: "SWIPER-CONTAINER",
2522    touchEventsTarget: "wrapper",
2523    initialSlide: 0,
2524    speed: 300,
2525    cssMode: !1,
2526    updateOnWindowResize: !0,
2527    resizeObserver: !0,
2528    nested: !1,
2529    createElements: !1,
2530    eventsPrefix: "swiper",
2531    enabled: !0,
2532    focusableElements: "input, select, option, textarea, button, video, label",
2533    width: null,
2534    height: null,
2535    preventInteractionOnTransition: !1,
2536    userAgent: null,
2537    url: null,
2538    edgeSwipeDetection: !1,
2539    edgeSwipeThreshold: 20,
2540    autoHeight: !1,
2541    setWrapperSize: !1,
2542    virtualTranslate: !1,
2543    effect: "slide",
2544    breakpoints: void 0,
2545    breakpointsBase: "window",
2546    spaceBetween: 0,
2547    slidesPerView: 1,
2548    slidesPerGroup: 1,
2549    slidesPerGroupSkip: 0,
2550    slidesPerGroupAuto: !1,
2551    centeredSlides: !1,
2552    centeredSlidesBounds: !1,
2553    slidesOffsetBefore: 0,
2554    slidesOffsetAfter: 0,
2555    normalizeSlideIndex: !0,
2556    centerInsufficientSlides: !1,
2557    watchOverflow: !0,
2558    roundLengths: !1,
2559    touchRatio: 1,
2560    touchAngle: 45,
2561    simulateTouch: !0,
2562    shortSwipes: !0,
2563    longSwipes: !0,
2564    longSwipesRatio: 0.5,
2565    longSwipesMs: 300,
2566    followFinger: !0,
2567    allowTouchMove: !0,
2568    threshold: 5,
2569    touchMoveStopPropagation: !1,
2570    touchStartPreventDefault: !0,
2571    touchStartForcePreventDefault: !1,
2572    touchReleaseOnEdges: !1,
2573    uniqueNavElements: !0,
2574    resistance: !0,
2575    resistanceRatio: 0.85,
2576    watchSlidesProgress: !1,
2577    grabCursor: !1,
2578    preventClicks: !0,
2579    preventClicksPropagation: !0,
2580    slideToClickedSlide: !1,
2581    loop: !1,
2582    loopAddBlankSlides: !0,
2583    loopAdditionalSlides: 0,
2584    loopPreventsSliding: !0,
2585    rewind: !1,
2586    allowSlidePrev: !0,
2587    allowSlideNext: !0,
2588    swipeHandler: null,
2589    noSwiping: !0,
2590    noSwipingClass: "swiper-no-swiping",
2591    noSwipingSelector: null,
2592    passiveListeners: !0,
2593    maxBackfaceHiddenSlides: 10,
2594    containerModifierClass: "swiper-",
2595    slideClass: "swiper-slide",
2596    slideBlankClass: "swiper-slide-blank",
2597    slideActiveClass: "swiper-slide-active",
2598    slideVisibleClass: "swiper-slide-visible",
2599    slideFullyVisibleClass: "swiper-slide-fully-visible",
2600    slideNextClass: "swiper-slide-next",
2601    slidePrevClass: "swiper-slide-prev",
2602    wrapperClass: "swiper-wrapper",
2603    lazyPreloaderClass: "swiper-lazy-preloader",
2604    lazyPreloadPrevNext: 0,
2605    runCallbacksOnInit: !0,
2606    _emitClasses: !1,
2607  };
2608  function se(e, t) {
2609    return function (s) {
2610      void 0 === s && (s = {});
2611      const a = Object.keys(s)[0],
2612        i = s[a];
2613      "object" == typeof i && null !== i
2614        ? (!0 === e[a] && (e[a] = { enabled: !0 }),
2615          "navigation" === a &&
2616            e[a] &&
2617            e[a].enabled &&
2618            !e[a].prevEl &&
2619            !e[a].nextEl &&
2620            (e[a].auto = !0),
2621          ["pagination", "scrollbar"].indexOf(a) >= 0 &&
2622            e[a] &&
2623            e[a].enabled &&
2624            !e[a].el &&
2625            (e[a].auto = !0),
2626          a in e && "enabled" in i
2627            ? ("object" != typeof e[a] ||
2628                "enabled" in e[a] ||
2629                (e[a].enabled = !0),
2630              e[a] || (e[a] = { enabled: !1 }),
2631              p(t, s))
2632            : p(t, s))
2633        : p(t, s);
2634    };
2635  }
2636  const ae = {
2637      eventsEmitter: k,
2638      update: B,
2639      translate: H,
2640      transition: {
2641        setTransition: function (e, t) {
2642          const s = this;
2643          s.params.cssMode ||
2644            ((s.wrapperEl.style.transitionDuration = `${e}ms`),
2645            (s.wrapperEl.style.transitionDelay = 0 === e ? "0ms" : "")),
2646            s.emit("setTransition", e, t);
2647        },
2648        transitionStart: function (e, t) {
2649          void 0 === e && (e = !0);
2650          const s = this,
2651            { params: a } = s;
2652          a.cssMode ||
2653            (a.autoHeight && s.updateAutoHeight(),
2654            N({ swiper: s, runCallbacks: e, direction: t, step: "Start" }));
2655        },
2656        transitionEnd: function (e, t) {
2657          void 0 === e && (e = !0);
2658          const s = this,
2659            { params: a } = s;
2660          (s.animating = !1),
2661            a.cssMode ||
2662              (s.setTransition(0),
2663              N({ swiper: s, runCallbacks: e, direction: t, step: "End" }));
2664        },
2665      },
2666      slide: R,
2667      loop: _,
2668      grabCursor: {
2669        setGrabCursor: function (e) {
2670          const t = this;
2671          if (
2672            !t.params.simulateTouch ||
2673            (t.params.watchOverflow && t.isLocked) ||
2674            t.params.cssMode
2675          )
2676            return;
2677          const s =
2678            "container" === t.params.touchEventsTarget ? t.el : t.wrapperEl;
2679          t.isElement && (t.__preventObserver__ = !0),
2680            (s.style.cursor = "move"),
2681            (s.style.cursor = e ? "grabbing" : "grab"),
2682            t.isElement &&
2683              requestAnimationFrame(() => {
2684                t.__preventObserver__ = !1;
2685              });
2686        },
2687        unsetGrabCursor: function () {
2688          const e = this;
2689          (e.params.watchOverflow && e.isLocked) ||
2690            e.params.cssMode ||
2691            (e.isElement && (e.__preventObserver__ = !0),
2692            (e[
2693              "container" === e.params.touchEventsTarget ? "el" : "wrapperEl"
2694            ].style.cursor = ""),
2695            e.isElement &&
2696              requestAnimationFrame(() => {
2697                e.__preventObserver__ = !1;
2698              }));
2699        },
2700      },
2701      events: {
2702        attachEvents: function () {
2703          const e = this,
2704            { params: t } = e;
2705          (e.onTouchStart = V.bind(e)),
2706            (e.onTouchMove = F.bind(e)),
2707            (e.onTouchEnd = W.bind(e)),
2708            (e.onDocumentTouchStart = Q.bind(e)),
2709            t.cssMode && (e.onScroll = K.bind(e)),
2710            (e.onClick = U.bind(e)),
2711            (e.onLoad = Z.bind(e)),
2712            J(e, "on");
2713        },
2714        detachEvents: function () {
2715          J(this, "off");
2716        },
2717      },
2718      breakpoints: {
2719        setBreakpoint: function () {
2720          const e = this,
2721            { realIndex: t, initialized: s, params: i, el: r } = e,
2722            n = i.breakpoints;
2723          if (!n || (n && 0 === Object.keys(n).length)) return;
2724          const l = a(),
2725            o =
2726              "window" !== i.breakpointsBase && i.breakpointsBase
2727                ? "container"
2728                : i.breakpointsBase,
2729            d =
2730              ["window", "container"].includes(i.breakpointsBase) ||
2731              !i.breakpointsBase
2732                ? e.el
2733                : l.querySelector(i.breakpointsBase),
2734            c = e.getBreakpoint(n, o, d);
2735          if (!c || e.currentBreakpoint === c) return;
2736          const u = (c in n ? n[c] : void 0) || e.originalParams,
2737            m = ee(e, i),
2738            h = ee(e, u),
2739            f = e.params.grabCursor,
2740            g = u.grabCursor,
2741            v = i.enabled;
2742          m && !h
2743            ? (r.classList.remove(
2744                `${i.containerModifierClass}grid`,
2745                `${i.containerModifierClass}grid-column`
2746              ),
2747              e.emitContainerClasses())
2748            : !m &&
2749              h &&
2750              (r.classList.add(`${i.containerModifierClass}grid`),
2751              ((u.grid.fill && "column" === u.grid.fill) ||
2752                (!u.grid.fill && "column" === i.grid.fill)) &&
2753                r.classList.add(`${i.containerModifierClass}grid-column`),
2754              e.emitContainerClasses()),
2755            f && !g ? e.unsetGrabCursor() : !f && g && e.setGrabCursor(),
2756            ["navigation", "pagination", "scrollbar"].forEach((t) => {
2757              if (void 0 === u[t]) return;
2758              const s = i[t] && i[t].enabled,
2759                a = u[t] && u[t].enabled;
2760              s && !a && e[t].disable(), !s && a && e[t].enable();
2761            });
2762          const w = u.direction && u.direction !== i.direction,
2763            b = i.loop && (u.slidesPerView !== i.slidesPerView || w),
2764            y = i.loop;
2765          w && s && e.changeDirection(), p(e.params, u);
2766          const E = e.params.enabled,
2767            x = e.params.loop;
2768          Object.assign(e, {
2769            allowTouchMove: e.params.allowTouchMove,
2770            allowSlideNext: e.params.allowSlideNext,
2771            allowSlidePrev: e.params.allowSlidePrev,
2772          }),
2773            v && !E ? e.disable() : !v && E && e.enable(),
2774            (e.currentBreakpoint = c),
2775            e.emit("_beforeBreakpoint", u),
2776            s &&
2777              (b
2778                ? (e.loopDestroy(), e.loopCreate(t), e.updateSlides())
2779                : !y && x
2780                ? (e.loopCreate(t), e.updateSlides())
2781                : y && !x && e.loopDestroy()),
2782            e.emit("breakpoint", u);
2783        },
2784        getBreakpoint: function (e, t, s) {
2785          if ((void 0 === t && (t = "window"), !e || ("container" === t && !s)))
2786            return;
2787          let a = !1;
2788          const i = r(),
2789            n = "window" === t ? i.innerHeight : s.clientHeight,
2790            l = Object.keys(e).map((e) => {
2791              if ("string" == typeof e && 0 === e.indexOf("@")) {
2792                const t = parseFloat(e.substr(1));
2793                return { value: n * t, point: e };
2794              }
2795              return { value: e, point: e };
2796            });
2797          l.sort((e, t) => parseInt(e.value, 10) - parseInt(t.value, 10));
2798          for (let e = 0; e < l.length; e += 1) {
2799            const { point: r, value: n } = l[e];
2800            "window" === t
2801              ? i.matchMedia(`(min-width: ${n}px)`).matches && (a = r)
2802              : n <= s.clientWidth && (a = r);
2803          }
2804          return a || "max";
2805        },
2806      },
2807      checkOverflow: {
2808        checkOverflow: function () {
2809          const e = this,
2810            { isLocked: t, params: s } = e,
2811            { slidesOffsetBefore: a } = s;
2812          if (a) {
2813            const t = e.slides.length - 1,
2814              s = e.slidesGrid[t] + e.slidesSizesGrid[t] + 2 * a;
2815            e.isLocked = e.size > s;
2816          } else e.isLocked = 1 === e.snapGrid.length;
2817          !0 === s.allowSlideNext && (e.allowSlideNext = !e.isLocked),
2818            !0 === s.allowSlidePrev && (e.allowSlidePrev = !e.isLocked),
2819            t && t !== e.isLocked && (e.isEnd = !1),
2820            t !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock");
2821        },
2822      },
2823      classes: {
2824        addClasses: function () {
2825          const e = this,
2826            { classNames: t, params: s, rtl: a, el: i, device: r } = e,
2827            n = (function (e, t) {
2828              const s = [];
2829              return (
2830                e.forEach((e) => {
2831                  "object" == typeof e
2832                    ? Object.keys(e).forEach((a) => {
2833                        e[a] && s.push(t + a);
2834                      })
2835                    : "string" == typeof e && s.push(t + e);
2836                }),
2837                s
2838              );
2839            })(
2840              [
2841                "initialized",
2842                s.direction,
2843                { "free-mode": e.params.freeMode && s.freeMode.enabled },
2844                { autoheight: s.autoHeight },
2845                { rtl: a },
2846                { grid: s.grid && s.grid.rows > 1 },
2847                {
2848                  "grid-column":
2849                    s.grid && s.grid.rows > 1 && "column" === s.grid.fill,
2850                },
2851                { android: r.android },
2852                { ios: r.ios },
2853                { "css-mode": s.cssMode },
2854                { centered: s.cssMode && s.centeredSlides },
2855                { "watch-progress": s.watchSlidesProgress },
2856              ],
2857              s.containerModifierClass
2858            );
2859          t.push(...n), i.classList.add(...t), e.emitContainerClasses();
2860        },
2861        removeClasses: function () {
2862          const { el: e, classNames: t } = this;
2863          e &&
2864            "string" != typeof e &&
2865            (e.classList.remove(...t), this.emitContainerClasses());
2866        },
2867      },
2868    },
2869    ie = {};
2870  class re {
2871    constructor() {
2872      let e, t;
2873      for (var s = arguments.length, i = new Array(s), r = 0; r < s; r++)
2874        i[r] = arguments[r];
2875      1 === i.length &&
2876      i[0].constructor &&
2877      "Object" === Object.prototype.toString.call(i[0]).slice(8, -1)
2878        ? (t = i[0])
2879        : ([e, t] = i),
2880        t || (t = {}),
2881        (t = p({}, t)),
2882        e && !t.el && (t.el = e);
2883      const n = a();
2884      if (
2885        t.el &&
2886        "string" == typeof t.el &&
2887        n.querySelectorAll(t.el).length > 1
2888      ) {
2889        const e = [];
2890        return (
2891          n.querySelectorAll(t.el).forEach((s) => {
2892            const a = p({}, t, { el: s });
2893            e.push(new re(a));
2894          }),
2895          e
2896        );
2897      }
2898      const l = this;
2899      (l.__swiper__ = !0),
2900        (l.support = z()),
2901        (l.device = A({ userAgent: t.userAgent })),
2902        (l.browser = $()),
2903        (l.eventsListeners = {}),
2904        (l.eventsAnyListeners = []),
2905        (l.modules = [...l.__modules__]),
2906        t.modules && Array.isArray(t.modules) && l.modules.push(...t.modules);
2907      const o = {};
2908      l.modules.forEach((e) => {
2909        e({
2910          params: t,
2911          swiper: l,
2912          extendParams: se(t, o),
2913          on: l.on.bind(l),
2914          once: l.once.bind(l),
2915          off: l.off.bind(l),
2916          emit: l.emit.bind(l),
2917        });
2918      });
2919      const d = p({}, te, o);
2920      return (
2921        (l.params = p({}, d, ie, t)),
2922        (l.originalParams = p({}, l.params)),
2923        (l.passedParams = p({}, t)),
2924        l.params &&
2925          l.params.on &&
2926          Object.keys(l.params.on).forEach((e) => {
2927            l.on(e, l.params.on[e]);
2928          }),
2929        l.params && l.params.onAny && l.onAny(l.params.onAny),
2930        Object.assign(l, {
2931          enabled: l.params.enabled,
2932          el: e,
2933          classNames: [],
2934          slides: [],
2935          slidesGrid: [],
2936          snapGrid: [],
2937          slidesSizesGrid: [],
2938          isHorizontal: () => "horizontal" === l.params.direction,
2939          isVertical: () => "vertical" === l.params.direction,
2940          activeIndex: 0,
2941          realIndex: 0,
2942          isBeginning: !0,
2943          isEnd: !1,
2944          translate: 0,
2945          previousTranslate: 0,
2946          progress: 0,
2947          velocity: 0,
2948          animating: !1,
2949          cssOverflowAdjustment() {
2950            return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;
2951          },
2952          allowSlideNext: l.params.allowSlideNext,
2953          allowSlidePrev: l.params.allowSlidePrev,
2954          touchEventsData: {
2955            isTouched: void 0,
2956            isMoved: void 0,
2957            allowTouchCallbacks: void 0,
2958            touchStartTime: void 0,
2959            isScrolling: void 0,
2960            currentTranslate: void 0,
2961            startTranslate: void 0,
2962            allowThresholdMove: void 0,
2963            focusableElements: l.params.focusableElements,
2964            lastClickTime: 0,
2965            clickTimeout: void 0,
2966            velocities: [],
2967            allowMomentumBounce: void 0,
2968            startMoving: void 0,
2969            pointerId: null,
2970            touchId: null,
2971          },
2972          allowClick: !0,
2973          allowTouchMove: l.params.allowTouchMove,
2974          touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 },
2975          imagesToLoad: [],
2976          imagesLoaded: 0,
2977        }),
2978        l.emit("_swiper"),
2979        l.params.init && l.init(),
2980        l
2981      );
2982    }
2983    getDirectionLabel(e) {
2984      return this.isHorizontal()
2985        ? e
2986        : {
2987            width: "height",
2988            "margin-top": "margin-left",
2989            "margin-bottom ": "margin-right",
2990            "margin-left": "margin-top",
2991            "margin-right": "margin-bottom",
2992            "padding-left": "padding-top",
2993            "padding-right": "padding-bottom",
2994            marginRight: "marginBottom",
2995          }[e];
2996    }
2997    getSlideIndex(e) {
2998      const { slidesEl: t, params: s } = this,
2999        a = y(f(t, `.${s.slideClass}, swiper-slide`)[0]);
3000      return y(e) - a;
3001    }
3002    getSlideIndexByData(e) {
3003      return this.getSlideIndex(
3004        this.slides.find(
3005          (t) => 1 * t.getAttribute("data-swiper-slide-index") === e
3006        )
3007      );
3008    }
3009    getSlideIndexWhenGrid(e) {
3010      return (
3011        this.grid &&
3012          this.params.grid &&
3013          this.params.grid.rows > 1 &&
3014          ("column" === this.params.grid.fill
3015            ? (e = Math.floor(e / this.params.grid.rows))
3016            : "row" === this.params.grid.fill &&
3017              (e %= Math.ceil(this.slides.length / this.params.grid.rows))),
3018        e
3019      );
3020    }
3021    recalcSlides() {
3022      const { slidesEl: e, params: t } = this;
3023      this.slides = f(e, `.${t.slideClass}, swiper-slide`);
3024    }
3025    enable() {
3026      const e = this;
3027      e.enabled ||
3028        ((e.enabled = !0),
3029        e.params.grabCursor && e.setGrabCursor(),
3030        e.emit("enable"));
3031    }
3032    disable() {
3033      const e = this;
3034      e.enabled &&
3035        ((e.enabled = !1),
3036        e.params.grabCursor && e.unsetGrabCursor(),
3037        e.emit("disable"));
3038    }
3039    setProgress(e, t) {
3040      const s = this;
3041      e = Math.min(Math.max(e, 0), 1);
3042      const a = s.minTranslate(),
3043        i = (s.maxTranslate() - a) * e + a;
3044      s.translateTo(i, void 0 === t ? 0 : t),
3045        s.updateActiveIndex(),
3046        s.updateSlidesClasses();
3047    }
3048    emitContainerClasses() {
3049      const e = this;
3050      if (!e.params._emitClasses || !e.el) return;
3051      const t = e.el.className
3052        .split(" ")
3053        .filter(
3054          (t) =>
3055            0 === t.indexOf("swiper") ||
3056            0 === t.indexOf(e.params.containerModifierClass)
3057        );
3058      e.emit("_containerClasses", t.join(" "));
3059    }
3060    getSlideClasses(e) {
3061      const t = this;
3062      return t.destroyed
3063        ? ""
3064        : e.className
3065            .split(" ")
3066            .filter(
3067              (e) =>
3068                0 === e.indexOf("swiper-slide") ||
3069                0 === e.indexOf(t.params.slideClass)
3070            )
3071            .join(" ");
3072    }
3073    emitSlidesClasses() {
3074      const e = this;
3075      if (!e.params._emitClasses || !e.el) return;
3076      const t = [];
3077      e.slides.forEach((s) => {
3078        const a = e.getSlideClasses(s);
3079        t.push({ slideEl: s, classNames: a }), e.emit("_slideClass", s, a);
3080      }),
3081        e.emit("_slideClasses", t);
3082    }
3083    slidesPerViewDynamic(e, t) {
3084      void 0 === e && (e = "current"), void 0 === t && (t = !1);
3085      const {
3086        params: s,
3087        slides: a,
3088        slidesGrid: i,
3089        slidesSizesGrid: r,
3090        size: n,
3091        activeIndex: l,
3092      } = this;
3093      let o = 1;
3094      if ("number" == typeof s.slidesPerView) return s.slidesPerView;
3095      if (s.centeredSlides) {
3096        let e,
3097          t = a[l] ? Math.ceil(a[l].swiperSlideSize) : 0;
3098        for (let s = l + 1; s < a.length; s += 1)
3099          a[s] &&
3100            !e &&
3101            ((t += Math.ceil(a[s].swiperSlideSize)),
3102            (o += 1),
3103            t > n && (e = !0));
3104        for (let s = l - 1; s >= 0; s -= 1)
3105          a[s] &&
3106            !e &&
3107            ((t += a[s].swiperSlideSize), (o += 1), t > n && (e = !0));
3108      } else if ("current" === e)
3109        for (let e = l + 1; e < a.length; e += 1) {
3110          (t ? i[e] + r[e] - i[l] < n : i[e] - i[l] < n) && (o += 1);
3111        }
3112      else
3113        for (let e = l - 1; e >= 0; e -= 1) {
3114          i[l] - i[e] < n && (o += 1);
3115        }
3116      return o;
3117    }
3118    update() {
3119      const e = this;
3120      if (!e || e.destroyed) return;
3121      const { snapGrid: t, params: s } = e;
3122      function a() {
3123        const t = e.rtlTranslate ? -1 * e.translate : e.translate,
3124          s = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate());
3125        e.setTranslate(s), e.updateActiveIndex(), e.updateSlidesClasses();
3126      }
3127      let i;
3128      if (
3129        (s.breakpoints && e.setBreakpoint(),
3130        [...e.el.querySelectorAll('[loading="lazy"]')].forEach((t) => {
3131          t.complete && G(e, t);
3132        }),
3133        e.updateSize(),
3134        e.updateSlides(),
3135        e.updateProgress(),
3136        e.updateSlidesClasses(),
3137        s.freeMode && s.freeMode.enabled && !s.cssMode)
3138      )
3139        a(), s.autoHeight && e.updateAutoHeight();
3140      else {
3141        if (
3142          ("auto" === s.slidesPerView || s.slidesPerView > 1) &&
3143          e.isEnd &&
3144          !s.centeredSlides
3145        ) {
3146          const t =
3147            e.virtual && s.virtual.enabled ? e.virtual.slides : e.slides;
3148          i = e.slideTo(t.length - 1, 0, !1, !0);
3149        } else i = e.slideTo(e.activeIndex, 0, !1, !0);
3150        i || a();
3151      }
3152      s.watchOverflow && t !== e.snapGrid && e.checkOverflow(),
3153        e.emit("update");
3154    }
3155    changeDirection(e, t) {
3156      void 0 === t && (t = !0);
3157      const s = this,
3158        a = s.params.direction;
3159      return (
3160        e || (e = "horizontal" === a ? "vertical" : "horizontal"),
3161        e === a ||
3162          ("horizontal" !== e && "vertical" !== e) ||
3163          (s.el.classList.remove(`${s.params.containerModifierClass}${a}`),
3164          s.el.classList.add(`${s.params.containerModifierClass}${e}`),
3165          s.emitContainerClasses(),
3166          (s.params.direction = e),
3167          s.slides.forEach((t) => {
3168            "vertical" === e ? (t.style.width = "") : (t.style.height = "");
3169          }),
3170          s.emit("changeDirection"),
3171          t && s.update()),
3172        s
3173      );
3174    }
3175    changeLanguageDirection(e) {
3176      const t = this;
3177      (t.rtl && "rtl" === e) ||
3178        (!t.rtl && "ltr" === e) ||
3179        ((t.rtl = "rtl" === e),
3180        (t.rtlTranslate = "horizontal" === t.params.direction && t.rtl),
3181        t.rtl
3182          ? (t.el.classList.add(`${t.params.containerModifierClass}rtl`),
3183            (t.el.dir = "rtl"))
3184          : (t.el.classList.remove(`${t.params.containerModifierClass}rtl`),
3185            (t.el.dir = "ltr")),
3186        t.update());
3187    }
3188    mount(e) {
3189      const t = this;
3190      if (t.mounted) return !0;
3191      let s = e || t.params.el;
3192      if (("string" == typeof s && (s = document.querySelector(s)), !s))
3193        return !1;
3194      (s.swiper = t),
3195        s.parentNode &&
3196          s.parentNode.host &&
3197          s.parentNode.host.nodeName ===
3198            t.params.swiperElementNodeName.toUpperCase() &&
3199          (t.isElement = !0);
3200      const a = () =>
3201        `.${(t.params.wrapperClass || "").trim().split(" ").join(".")}`;
3202      let i = (() => {
3203        if (s && s.shadowRoot && s.shadowRoot.querySelector) {
3204          return s.shadowRoot.querySelector(a());
3205        }
3206        return f(s, a())[0];
3207      })();
3208      return (
3209        !i &&
3210          t.params.createElements &&
3211          ((i = v("div", t.params.wrapperClass)),
3212          s.append(i),
3213          f(s, `.${t.params.slideClass}`).forEach((e) => {
3214            i.append(e);
3215          })),
3216        Object.assign(t, {
3217          el: s,
3218          wrapperEl: i,
3219          slidesEl:
3220            t.isElement && !s.parentNode.host.slideSlots
3221              ? s.parentNode.host
3222              : i,
3223          hostEl: t.isElement ? s.parentNode.host : s,
3224          mounted: !0,
3225          rtl: "rtl" === s.dir.toLowerCase() || "rtl" === b(s, "direction"),
3226          rtlTranslate:
3227            "horizontal" === t.params.direction &&
3228            ("rtl" === s.dir.toLowerCase() || "rtl" === b(s, "direction")),
3229          wrongRTL: "-webkit-box" === b(i, "display"),
3230        }),
3231        !0
3232      );
3233    }
3234    init(e) {
3235      const t = this;
3236      if (t.initialized) return t;
3237      if (!1 === t.mount(e)) return t;
3238      t.emit("beforeInit"),
3239        t.params.breakpoints && t.setBreakpoint(),
3240        t.addClasses(),
3241        t.updateSize(),
3242        t.updateSlides(),
3243        t.params.watchOverflow && t.checkOverflow(),
3244        t.params.grabCursor && t.enabled && t.setGrabCursor(),
3245        t.params.loop && t.virtual && t.params.virtual.enabled
3246          ? t.slideTo(
3247              t.params.initialSlide + t.virtual.slidesBefore,
3248              0,
3249              t.params.runCallbacksOnInit,
3250              !1,
3251              !0
3252            )
3253          : t.slideTo(
3254              t.params.initialSlide,
3255              0,
3256              t.params.runCallbacksOnInit,
3257              !1,
3258              !0
3259            ),
3260        t.params.loop && t.loopCreate(void 0, !0),
3261        t.attachEvents();
3262      const s = [...t.el.querySelectorAll('[loading="lazy"]')];
3263      return (
3264        t.isElement && s.push(...t.hostEl.querySelectorAll('[loading="lazy"]')),
3265        s.forEach((e) => {
3266          e.complete
3267            ? G(t, e)
3268            : e.addEventListener("load", (e) => {
3269                G(t, e.target);
3270              });
3271        }),
3272        Y(t),
3273        (t.initialized = !0),
3274        Y(t),
3275        t.emit("init"),
3276        t.emit("afterInit"),
3277        t
3278      );
3279    }
3280    destroy(e, t) {
3281      void 0 === e && (e = !0), void 0 === t && (t = !0);
3282      const s = this,
3283        { params: a, el: i, wrapperEl: r, slides: n } = s;
3284      return (
3285        void 0 === s.params ||
3286          s.destroyed ||
3287          (s.emit("beforeDestroy"),
3288          (s.initialized = !1),
3289          s.detachEvents(),
3290          a.loop && s.loopDestroy(),
3291          t &&
3292            (s.removeClasses(),
3293            i && "string" != typeof i && i.removeAttribute("style"),
3294            r && r.removeAttribute("style"),
3295            n &&
3296              n.length &&
3297              n.forEach((e) => {
3298                e.classList.remove(
3299                  a.slideVisibleClass,
3300                  a.slideFullyVisibleClass,
3301                  a.slideActiveClass,
3302                  a.slideNextClass,
3303                  a.slidePrevClass
3304                ),
3305                  e.removeAttribute("style"),
3306                  e.removeAttribute("data-swiper-slide-index");
3307              })),
3308          s.emit("destroy"),
3309          Object.keys(s.eventsListeners).forEach((e) => {
3310            s.off(e);
3311          }),
3312          !1 !== e &&
3313            (s.el && "string" != typeof s.el && (s.el.swiper = null),
3314            (function (e) {
3315              const t = e;
3316              Object.keys(t).forEach((e) => {
3317                try {
3318                  t[e] = null;
3319                } catch (e) {}
3320                try {
3321                  delete t[e];
3322                } catch (e) {}
3323              });
3324            })(s)),
3325          (s.destroyed = !0)),
3326        null
3327      );
3328    }
3329    static extendDefaults(e) {
3330      p(ie, e);
3331    }
3332    static get extendedDefaults() {
3333      return ie;
3334    }
3335    static get defaults() {
3336      return te;
3337    }
3338    static installModule(e) {
3339      re.prototype.__modules__ || (re.prototype.__modules__ = []);
3340      const t = re.prototype.__modules__;
3341      "function" == typeof e && t.indexOf(e) < 0 && t.push(e);
3342    }
3343    static use(e) {
3344      return Array.isArray(e)
3345        ? (e.forEach((e) => re.installModule(e)), re)
3346        : (re.installModule(e), re);
3347    }
3348  }
3349  function ne(e, t, s, a) {
3350    return (
3351      e.params.createElements &&
3352        Object.keys(a).forEach((i) => {
3353          if (!s[i] && !0 === s.auto) {
3354            let r = f(e.el, `.${a[i]}`)[0];
3355            r || ((r = v("div", a[i])), (r.className = a[i]), e.el.append(r)),
3356              (s[i] = r),
3357              (t[i] = r);
3358          }
3359        }),
3360      s
3361    );
3362  }
3363  function le(e) {
3364    return (
3365      void 0 === e && (e = ""),
3366      `.${e
3367        .trim()
3368        .replace(/([\.:!+\/()[\]])/g, "\\$1")
3369        .replace(/ /g, ".")}`
3370    );
3371  }
3372  function oe(e) {
3373    const t = this,
3374      { params: s, slidesEl: a } = t;
3375    s.loop && t.loopDestroy();
3376    const i = (e) => {
3377      if ("string" == typeof e) {
3378        const t = document.createElement("div");
3379        C(t, e), a.append(t.children[0]), C(t, "");
3380      } else a.append(e);
3381    };
3382    if ("object" == typeof e && "length" in e)
3383      for (let t = 0; t < e.length; t += 1) e[t] && i(e[t]);
3384    else i(e);
3385    t.recalcSlides(),
3386      s.loop && t.loopCreate(),
3387      (s.observer && !t.isElement) || t.update();
3388  }
3389  function de(e) {
3390    const t = this,
3391      { params: s, activeIndex: a, slidesEl: i } = t;
3392    s.loop && t.loopDestroy();
3393    let r = a + 1;
3394    const n = (e) => {
3395      if ("string" == typeof e) {
3396        const t = document.createElement("div");
3397        C(t, e), i.prepend(t.children[0]), C(t, "");
3398      } else i.prepend(e);
3399    };
3400    if ("object" == typeof e && "length" in e) {
3401      for (let t = 0; t < e.length; t += 1) e[t] && n(e[t]);
3402      r = a + e.length;
3403    } else n(e);
3404    t.recalcSlides(),
3405      s.loop && t.loopCreate(),
3406      (s.observer && !t.isElement) || t.update(),
3407      t.slideTo(r, 0, !1);
3408  }
3409  function ce(e, t) {
3410    const s = this,
3411      { params: a, activeIndex: i, slidesEl: r } = s;
3412    let n = i;
3413    a.loop && ((n -= s.loopedSlides), s.loopDestroy(), s.recalcSlides());
3414    const l = s.slides.length;
3415    if (e <= 0) return void s.prependSlide(t);
3416    if (e >= l) return void s.appendSlide(t);
3417    let o = n > e ? n + 1 : n;
3418    const d = [];
3419    for (let t = l - 1; t >= e; t -= 1) {
3420      const e = s.slides[t];
3421      e.remove(), d.unshift(e);
3422    }
3423    if ("object" == typeof t && "length" in t) {
3424      for (let e = 0; e < t.length; e += 1) t[e] && r.append(t[e]);
3425      o = n > e ? n + t.length : n;
3426    } else r.append(t);
3427    for (let e = 0; e < d.length; e += 1) r.append(d[e]);
3428    s.recalcSlides(),
3429      a.loop && s.loopCreate(),
3430      (a.observer && !s.isElement) || s.update(),
3431      a.loop ? s.slideTo(o + s.loopedSlides, 0, !1) : s.slideTo(o, 0, !1);
3432  }
3433  function pe(e) {
3434    const t = this,
3435      { params: s, activeIndex: a } = t;
3436    let i = a;
3437    s.loop && ((i -= t.loopedSlides), t.loopDestroy());
3438    let r,
3439      n = i;
3440    if ("object" == typeof e && "length" in e) {
3441      for (let s = 0; s < e.length; s += 1)
3442        (r = e[s]), t.slides[r] && t.slides[r].remove(), r < n && (n -= 1);
3443      n = Math.max(n, 0);
3444    } else
3445      (r = e),
3446        t.slides[r] && t.slides[r].remove(),
3447        r < n && (n -= 1),
3448        (n = Math.max(n, 0));
3449    t.recalcSlides(),
3450      s.loop && t.loopCreate(),
3451      (s.observer && !t.isElement) || t.update(),
3452      s.loop ? t.slideTo(n + t.loopedSlides, 0, !1) : t.slideTo(n, 0, !1);
3453  }
3454  function ue() {
3455    const e = this,
3456      t = [];
3457    for (let s = 0; s < e.slides.length; s += 1) t.push(s);
3458    e.removeSlide(t);
3459  }
3460  function me(e) {
3461    const {
3462      effect: t,
3463      swiper: s,
3464      on: a,
3465      setTranslate: i,
3466      setTransition: r,
3467      overwriteParams: n,
3468      perspective: l,
3469      recreateShadows: o,
3470      getEffectParams: d,
3471    } = e;
3472    let c;
3473    a("beforeInit", () => {
3474      if (s.params.effect !== t) return;
3475      s.classNames.push(`${s.params.containerModifierClass}${t}`),
3476        l && l() && s.classNames.push(`${s.params.containerModifierClass}3d`);
3477      const e = n ? n() : {};
3478      Object.assign(s.params, e), Object.assign(s.originalParams, e);
3479    }),
3480      a("setTranslate _virtualUpdated", () => {
3481        s.params.effect === t && i();
3482      }),
3483      a("setTransition", (e, a) => {
3484        s.params.effect === t && r(a);
3485      }),
3486      a("transitionEnd", () => {
3487        if (s.params.effect === t && o) {
3488          if (!d || !d().slideShadows) return;
3489          s.slides.forEach((e) => {
3490            e.querySelectorAll(
3491              ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
3492            ).forEach((e) => e.remove());
3493          }),
3494            o();
3495        }
3496      }),
3497      a("virtualUpdate", () => {
3498        s.params.effect === t &&
3499          (s.slides.length || (c = !0),
3500          requestAnimationFrame(() => {
3501            c && s.slides && s.slides.length && (i(), (c = !1));
3502          }));
3503      });
3504  }
3505  function he(e, t) {
3506    const s = h(t);
3507    return (
3508      s !== t &&
3509        ((s.style.backfaceVisibility = "hidden"),
3510        (s.style["-webkit-backface-visibility"] = "hidden")),
3511      s
3512    );
3513  }
3514  function fe(e) {
3515    let { swiper: t, duration: s, transformElements: a, allSlides: i } = e;
3516    const { activeIndex: r } = t;
3517    if (t.params.virtualTranslate && 0 !== s) {
3518      let e,
3519        s = !1;
3520      (e = i
3521        ? a
3522        : a.filter((e) => {
3523            const s = e.classList.contains("swiper-slide-transform")
3524              ? ((e) => {
3525                  if (!e.parentElement)
3526                    return t.slides.find(
3527                      (t) => t.shadowRoot && t.shadowRoot === e.parentNode
3528                    );
3529                  return e.parentElement;
3530                })(e)
3531              : e;
3532            return t.getSlideIndex(s) === r;
3533          })),
3534        e.forEach((e) => {
3535          x(e, () => {
3536            if (s) return;
3537            if (!t || t.destroyed) return;
3538            (s = !0), (t.animating = !1);
3539            const e = new window.CustomEvent("transitionend", {
3540              bubbles: !0,
3541              cancelable: !0,
3542            });
3543            t.wrapperEl.dispatchEvent(e);
3544          });
3545        });
3546    }
3547  }
3548  function ge(e, t, s) {
3549    const a = `swiper-slide-shadow${s ? `-${s}` : ""}${
3550        e ? ` swiper-slide-shadow-${e}` : ""
3551      }`,
3552      i = h(t);
3553    let r = i.querySelector(`.${a.split(" ").join(".")}`);
3554    return r || ((r = v("div", a.split(" "))), i.append(r)), r;
3555  }
3556  Object.keys(ae).forEach((e) => {
3557    Object.keys(ae[e]).forEach((t) => {
3558      re.prototype[t] = ae[e][t];
3559    });
3560  }),
3561    re.use([
3562      function (e) {
3563        let { swiper: t, on: s, emit: a } = e;
3564        const i = r();
3565        let n = null,
3566          l = null;
3567        const o = () => {
3568            t &&
3569              !t.destroyed &&
3570              t.initialized &&
3571              (a("beforeResize"), a("resize"));
3572          },
3573          d = () => {
3574            t && !t.destroyed && t.initialized && a("orientationchange");
3575          };
3576        s("init", () => {
3577          t.params.resizeObserver && void 0 !== i.ResizeObserver
3578            ? t &&
3579              !t.destroyed &&
3580              t.initialized &&
3581              ((n = new ResizeObserver((e) => {
3582                l = i.requestAnimationFrame(() => {
3583                  const { width: s, height: a } = t;
3584                  let i = s,
3585                    r = a;
3586                  e.forEach((e) => {
3587                    let { contentBoxSize: s, contentRect: a, target: n } = e;
3588                    (n && n !== t.el) ||
3589                      ((i = a ? a.width : (s[0] || s).inlineSize),
3590                      (r = a ? a.height : (s[0] || s).blockSize));
3591                  }),
3592                    (i === s && r === a) || o();
3593                });
3594              })),
3595              n.observe(t.el))
3596            : (i.addEventListener("resize", o),
3597              i.addEventListener("orientationchange", d));
3598        }),
3599          s("destroy", () => {
3600            l && i.cancelAnimationFrame(l),
3601              n && n.unobserve && t.el && (n.unobserve(t.el), (n = null)),
3602              i.removeEventListener("resize", o),
3603              i.removeEventListener("orientationchange", d);
3604          });
3605      },
3606      function (e) {
3607        let { swiper: t, extendParams: s, on: a, emit: i } = e;
3608        const n = [],
3609          l = r(),
3610          o = function (e, s) {
3611            void 0 === s && (s = {});
3612            const a = new (l.MutationObserver || l.WebkitMutationObserver)(
3613              (e) => {
3614                if (t.__preventObserver__) return;
3615                if (1 === e.length) return void i("observerUpdate", e[0]);
3616                const s = function () {
3617                  i("observerUpdate", e[0]);
3618                };
3619                l.requestAnimationFrame
3620                  ? l.requestAnimationFrame(s)
3621                  : l.setTimeout(s, 0);
3622              }
3623            );
3624            a.observe(e, {
3625              attributes: void 0 === s.attributes || s.attributes,
3626              childList: t.isElement || (void 0 === s.childList || s).childList,
3627              characterData: void 0 === s.characterData || s.characterData,
3628            }),
3629              n.push(a);
3630          };
3631        s({ observer: !1, observeParents: !1, observeSlideChildren: !1 }),
3632          a("init", () => {
3633            if (t.params.observer) {
3634              if (t.params.observeParents) {
3635                const e = E(t.hostEl);
3636                for (let t = 0; t < e.length; t += 1) o(e[t]);
3637              }
3638              o(t.hostEl, { childList: t.params.observeSlideChildren }),
3639                o(t.wrapperEl, { attributes: !1 });
3640            }
3641          }),
3642          a("destroy", () => {
3643            n.forEach((e) => {
3644              e.disconnect();
3645            }),
3646              n.splice(0, n.length);
3647          });
3648      },
3649    ]);
3650  const ve = [
3651    function (e) {
3652      let t,
3653        { swiper: s, extendParams: i, on: r, emit: n } = e;
3654      i({
3655        virtual: {
3656          enabled: !1,
3657          slides: [],
3658          cache: !0,
3659          renderSlide: null,
3660          renderExternal: null,
3661          renderExternalUpdate: !0,
3662          addSlidesBefore: 0,
3663          addSlidesAfter: 0,
3664        },
3665      });
3666      const l = a();
3667      s.virtual = {
3668        cache: {},
3669        from: void 0,
3670        to: void 0,
3671        slides: [],
3672        offset: 0,
3673        slidesGrid: [],
3674      };
3675      const o = l.createElement("div");
3676      function d(e, t) {
3677        const a = s.params.virtual;
3678        if (a.cache && s.virtual.cache[t]) return s.virtual.cache[t];
3679        let i;
3680        return (
3681          a.renderSlide
3682            ? ((i = a.renderSlide.call(s, e, t)),
3683              "string" == typeof i && (C(o, i), (i = o.children[0])))
3684            : (i = s.isElement
3685                ? v("swiper-slide")
3686                : v("div", s.params.slideClass)),
3687          i.setAttribute("data-swiper-slide-index", t),
3688          a.renderSlide || C(i, e),
3689          a.cache && (s.virtual.cache[t] = i),
3690          i
3691        );
3692      }
3693      function c(e, t, a) {
3694        const {
3695          slidesPerView: i,
3696          slidesPerGroup: r,
3697          centeredSlides: l,
3698          loop: o,
3699          initialSlide: c,
3700        } = s.params;
3701        if (t && !o && c > 0) return;
3702        const { addSlidesBefore: p, addSlidesAfter: u } = s.params.virtual,
3703          { from: m, to: h, slides: g, slidesGrid: v, offset: w } = s.virtual;
3704        s.params.cssMode || s.updateActiveIndex();
3705        const b = void 0 === a ? s.activeIndex || 0 : a;
3706        let y, E, x;
3707        (y = s.rtlTranslate ? "right" : s.isHorizontal() ? "left" : "top"),
3708          l
3709            ? ((E = Math.floor(i / 2) + r + u), (x = Math.floor(i / 2) + r + p))
3710            : ((E = i + (r - 1) + u), (x = (o ? i : r) + p));
3711        let S = b - x,
3712          T = b + E;
3713        o || ((S = Math.max(S, 0)), (T = Math.min(T, g.length - 1)));
3714        let M = (s.slidesGrid[S] || 0) - (s.slidesGrid[0] || 0);
3715        function C() {
3716          s.updateSlides(),
3717            s.updateProgress(),
3718            s.updateSlidesClasses(),
3719            n("virtualUpdate");
3720        }
3721        if (
3722          (o && b >= x
3723            ? ((S -= x), l || (M += s.slidesGrid[0]))
3724            : o && b < x && ((S = -x), l && (M += s.slidesGrid[0])),
3725          Object.assign(s.virtual, {
3726            from: S,
3727            to: T,
3728            offset: M,
3729            slidesGrid: s.slidesGrid,
3730            slidesBefore: x,
3731            slidesAfter: E,
3732          }),
3733          m === S && h === T && !e)
3734        )
3735          return (
3736            s.slidesGrid !== v &&
3737              M !== w &&
3738              s.slides.forEach((e) => {
3739                e.style[y] = M - Math.abs(s.cssOverflowAdjustment()) + "px";
3740              }),
3741            s.updateProgress(),
3742            void n("virtualUpdate")
3743          );
3744        if (s.params.virtual.renderExternal)
3745          return (
3746            s.params.virtual.renderExternal.call(s, {
3747              offset: M,
3748              from: S,
3749              to: T,
3750              slides: (function () {
3751                const e = [];
3752                for (let t = S; t <= T; t += 1) e.push(g[t]);
3753                return e;
3754              })(),
3755            }),
3756            void (s.params.virtual.renderExternalUpdate
3757              ? C()
3758              : n("virtualUpdate"))
3759          );
3760        const P = [],
3761          L = [],
3762          I = (e) => {
3763            let t = e;
3764            return (
3765              e < 0 ? (t = g.length + e) : t >= g.length && (t -= g.length), t
3766            );
3767          };
3768        if (e)
3769          s.slides
3770            .filter((e) => e.matches(`.${s.params.slideClass}, swiper-slide`))
3771            .forEach((e) => {
3772              e.remove();
3773            });
3774        else
3775          for (let e = m; e <= h; e += 1)
3776            if (e < S || e > T) {
3777              const t = I(e);
3778              s.slides
3779                .filter((e) =>
3780                  e.matches(
3781                    `.${s.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}"]`
3782                  )
3783                )
3784                .forEach((e) => {
3785                  e.remove();
3786                });
3787            }
3788        const z = o ? -g.length : 0,
3789          A = o ? 2 * g.length : g.length;
3790        for (let t = z; t < A; t += 1)
3791          if (t >= S && t <= T) {
3792            const s = I(t);
3793            void 0 === h || e
3794              ? L.push(s)
3795              : (t > h && L.push(s), t < m && P.push(s));
3796          }
3797        if (
3798          (L.forEach((e) => {
3799            s.slidesEl.append(d(g[e], e));
3800          }),
3801          o)
3802        )
3803          for (let e = P.length - 1; e >= 0; e -= 1) {
3804            const t = P[e];
3805            s.slidesEl.prepend(d(g[t], t));
3806          }
3807        else
3808          P.sort((e, t) => t - e),
3809            P.forEach((e) => {
3810              s.slidesEl.prepend(d(g[e], e));
3811            });
3812        f(s.slidesEl, ".swiper-slide, swiper-slide").forEach((e) => {
3813          e.style[y] = M - Math.abs(s.cssOverflowAdjustment()) + "px";
3814        }),
3815          C();
3816      }
3817      r("beforeInit", () => {
3818        if (!s.params.virtual.enabled) return;
3819        let e;
3820        if (void 0 === s.passedParams.virtual.slides) {
3821          const t = [...s.slidesEl.children].filter((e) =>
3822            e.matches(`.${s.params.slideClass}, swiper-slide`)
3823          );
3824          t &&
3825            t.length &&
3826            ((s.virtual.slides = [...t]),
3827            (e = !0),
3828            t.forEach((e, t) => {
3829              e.setAttribute("data-swiper-slide-index", t),
3830                (s.virtual.cache[t] = e),
3831                e.remove();
3832            }));
3833        }
3834        e || (s.virtual.slides = s.params.virtual.slides),
3835          s.classNames.push(`${s.params.containerModifierClass}virtual`),
3836          (s.params.watchSlidesProgress = !0),
3837          (s.originalParams.watchSlidesProgress = !0),
3838          c(!1, !0);
3839      }),
3840        r("setTranslate", () => {
3841          s.params.virtual.enabled &&
3842            (s.params.cssMode && !s._immediateVirtual
3843              ? (clearTimeout(t),
3844                (t = setTimeout(() => {
3845                  c();
3846                }, 100)))
3847              : c());
3848        }),
3849        r("init update resize", () => {
3850          s.params.virtual.enabled &&
3851            s.params.cssMode &&
3852            u(s.wrapperEl, "--swiper-virtual-size", `${s.virtualSize}px`);
3853        }),
3854        Object.assign(s.virtual, {
3855          appendSlide: function (e) {
3856            if ("object" == typeof e && "length" in e)
3857              for (let t = 0; t < e.length; t += 1)
3858                e[t] && s.virtual.slides.push(e[t]);
3859            else s.virtual.slides.push(e);
3860            c(!0);
3861          },
3862          prependSlide: function (e) {
3863            const t = s.activeIndex;
3864            let a = t + 1,
3865              i = 1;
3866            if (Array.isArray(e)) {
3867              for (let t = 0; t < e.length; t += 1)
3868                e[t] && s.virtual.slides.unshift(e[t]);
3869              (a = t + e.length), (i = e.length);
3870            } else s.virtual.slides.unshift(e);
3871            if (s.params.virtual.cache) {
3872              const e = s.virtual.cache,
3873                t = {};
3874              Object.keys(e).forEach((s) => {
3875                const a = e[s],
3876                  r = a.getAttribute("data-swiper-slide-index");
3877                r &&
3878                  a.setAttribute(
3879                    "data-swiper-slide-index",
3880                    parseInt(r, 10) + i
3881                  ),
3882                  (t[parseInt(s, 10) + i] = a);
3883              }),
3884                (s.virtual.cache = t);
3885            }
3886            c(!0), s.slideTo(a, 0);
3887          },
3888          removeSlide: function (e) {
3889            if (null == e) return;
3890            let t = s.activeIndex;
3891            if (Array.isArray(e))
3892              for (let a = e.length - 1; a >= 0; a -= 1)
3893                s.params.virtual.cache &&
3894                  (delete s.virtual.cache[e[a]],
3895                  Object.keys(s.virtual.cache).forEach((t) => {
3896                    t > e &&
3897                      ((s.virtual.cache[t - 1] = s.virtual.cache[t]),
3898                      s.virtual.cache[t - 1].setAttribute(
3899                        "data-swiper-slide-index",
3900                        t - 1
3901                      ),
3902                      delete s.virtual.cache[t]);
3903                  })),
3904                  s.virtual.slides.splice(e[a], 1),
3905                  e[a] < t && (t -= 1),
3906                  (t = Math.max(t, 0));
3907            else
3908              s.params.virtual.cache &&
3909                (delete s.virtual.cache[e],
3910                Object.keys(s.virtual.cache).forEach((t) => {
3911                  t > e &&
3912                    ((s.virtual.cache[t - 1] = s.virtual.cache[t]),
3913                    s.virtual.cache[t - 1].setAttribute(
3914                      "data-swiper-slide-index",
3915                      t - 1
3916                    ),
3917                    delete s.virtual.cache[t]);
3918                })),
3919                s.virtual.slides.splice(e, 1),
3920                e < t && (t -= 1),
3921                (t = Math.max(t, 0));
3922            c(!0), s.slideTo(t, 0);
3923          },
3924          removeAllSlides: function () {
3925            (s.virtual.slides = []),
3926              s.params.virtual.cache && (s.virtual.cache = {}),
3927              c(!0),
3928              s.slideTo(0, 0);
3929          },
3930          update: c,
3931        });
3932    },
3933    function (e) {
3934      let { swiper: t, extendParams: s, on: i, emit: n } = e;
3935      const l = a(),
3936        o = r();
3937      function d(e) {
3938        if (!t.enabled) return;
3939        const { rtlTranslate: s } = t;
3940        let a = e;
3941        a.originalEvent && (a = a.originalEvent);
3942        const i = a.keyCode || a.charCode,
3943          r = t.params.keyboard.pageUpDown,
3944          d = r && 33 === i,
3945          c = r && 34 === i,
3946          p = 37 === i,
3947          u = 39 === i,
3948          m = 38 === i,
3949          h = 40 === i;
3950        if (
3951          !t.allowSlideNext &&
3952          ((t.isHorizontal() && u) || (t.isVertical() && h) || c)
3953        )
3954          return !1;
3955        if (
3956          !t.allowSlidePrev &&
3957          ((t.isHorizontal() && p) || (t.isVertical() && m) || d)
3958        )
3959          return !1;
3960        if (
3961          !(
3962            a.shiftKey ||
3963            a.altKey ||
3964            a.ctrlKey ||
3965            a.metaKey ||
3966            (l.activeElement &&
3967              (l.activeElement.isContentEditable ||
3968                (l.activeElement.nodeName &&
3969                  ("input" === l.activeElement.nodeName.toLowerCase() ||
3970                    "textarea" === l.activeElement.nodeName.toLowerCase()))))
3971          )
3972        ) {
3973          if (
3974            t.params.keyboard.onlyInViewport &&
3975            (d || c || p || u || m || h)
3976          ) {
3977            let e = !1;
3978            if (
3979              E(t.el, `.${t.params.slideClass}, swiper-slide`).length > 0 &&
3980              0 === E(t.el, `.${t.params.slideActiveClass}`).length
3981            )
3982              return;
3983            const a = t.el,
3984              i = a.clientWidth,
3985              r = a.clientHeight,
3986              n = o.innerWidth,
3987              l = o.innerHeight,
3988              d = w(a);
3989            s && (d.left -= a.scrollLeft);
3990            const c = [
3991              [d.left, d.top],
3992              [d.left + i, d.top],
3993              [d.left, d.top + r],
3994              [d.left + i, d.top + r],
3995            ];
3996            for (let t = 0; t < c.length; t += 1) {
3997              const s = c[t];
3998              if (s[0] >= 0 && s[0] <= n && s[1] >= 0 && s[1] <= l) {
3999                if (0 === s[0] && 0 === s[1]) continue;
4000                e = !0;
4001              }
4002            }
4003            if (!e) return;
4004          }
4005          t.isHorizontal()
4006            ? ((d || c || p || u) &&
4007                (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)),
4008              (((c || u) && !s) || ((d || p) && s)) && t.slideNext(),
4009              (((d || p) && !s) || ((c || u) && s)) && t.slidePrev())
4010            : ((d || c || m || h) &&
4011                (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)),
4012              (c || h) && t.slideNext(),
4013              (d || m) && t.slidePrev()),
4014            n("keyPress", i);
4015        }
4016      }
4017      function c() {
4018        t.keyboard.enabled ||
4019          (l.addEventListener("keydown", d), (t.keyboard.enabled = !0));
4020      }
4021      function p() {
4022        t.keyboard.enabled &&
4023          (l.removeEventListener("keydown", d), (t.keyboard.enabled = !1));
4024      }
4025      (t.keyboard = { enabled: !1 }),
4026        s({ keyboard: { enabled: !1, onlyInViewport: !0, pageUpDown: !0 } }),
4027        i("init", () => {
4028          t.params.keyboard.enabled && c();
4029        }),
4030        i("destroy", () => {
4031          t.keyboard.enabled && p();
4032        }),
4033        Object.assign(t.keyboard, { enable: c, disable: p });
4034    },
4035    function (e) {
4036      let { swiper: t, extendParams: s, on: a, emit: i } = e;
4037      const n = r();
4038      let d;
4039      s({
4040        mousewheel: {
4041          enabled: !1,
4042          releaseOnEdges: !1,
4043          invert: !1,
4044          forceToAxis: !1,
4045          sensitivity: 1,
4046          eventsTarget: "container",
4047          thresholdDelta: null,
4048          thresholdTime: null,
4049          noMousewheelClass: "swiper-no-mousewheel",
4050        },
4051      }),
4052        (t.mousewheel = { enabled: !1 });
4053      let c,
4054        p = o();
4055      const u = [];
4056      function m() {
4057        t.enabled && (t.mouseEntered = !0);
4058      }
4059      function h() {
4060        t.enabled && (t.mouseEntered = !1);
4061      }
4062      function f(e) {
4063        return (
4064          !(
4065            t.params.mousewheel.thresholdDelta &&
4066            e.delta < t.params.mousewheel.thresholdDelta
4067          ) &&
4068          !(
4069            t.params.mousewheel.thresholdTime &&
4070            o() - p < t.params.mousewheel.thresholdTime
4071          ) &&
4072          ((e.delta >= 6 && o() - p < 60) ||
4073            (e.direction < 0
4074              ? (t.isEnd && !t.params.loop) ||
4075                t.animating ||
4076                (t.slideNext(), i("scroll", e.raw))
4077              : (t.isBeginning && !t.params.loop) ||
4078                t.animating ||
4079                (t.slidePrev(), i("scroll", e.raw)),
4080            (p = new n.Date().getTime()),
4081            !1))
4082        );
4083      }
4084      function g(e) {
4085        let s = e,
4086          a = !0;
4087        if (!t.enabled) return;
4088        if (e.target.closest(`.${t.params.mousewheel.noMousewheelClass}`))
4089          return;
4090        const r = t.params.mousewheel;
4091        t.params.cssMode && s.preventDefault();
4092        let n = t.el;
4093        "container" !== t.params.mousewheel.eventsTarget &&
4094          (n = document.querySelector(t.params.mousewheel.eventsTarget));
4095        const p = n && n.contains(s.target);
4096        if (!t.mouseEntered && !p && !r.releaseOnEdges) return !0;
4097        s.originalEvent && (s = s.originalEvent);
4098        let m = 0;
4099        const h = t.rtlTranslate ? -1 : 1,
4100          g = (function (e) {
4101            let t = 0,
4102              s = 0,
4103              a = 0,
4104              i = 0;
4105            return (
4106              "detail" in e && (s = e.detail),
4107              "wheelDelta" in e && (s = -e.wheelDelta / 120),
4108              "wheelDeltaY" in e && (s = -e.wheelDeltaY / 120),
4109              "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120),
4110              "axis" in e && e.axis === e.HORIZONTAL_AXIS && ((t = s), (s = 0)),
4111              (a = 10 * t),
4112              (i = 10 * s),
4113              "deltaY" in e && (i = e.deltaY),
4114              "deltaX" in e && (a = e.deltaX),
4115              e.shiftKey && !a && ((a = i), (i = 0)),
4116              (a || i) &&
4117                e.deltaMode &&
4118                (1 === e.deltaMode
4119                  ? ((a *= 40), (i *= 40))
4120                  : ((a *= 800), (i *= 800))),
4121              a && !t && (t = a < 1 ? -1 : 1),
4122              i && !s && (s = i < 1 ? -1 : 1),
4123              { spinX: t, spinY: s, pixelX: a, pixelY: i }
4124            );
4125          })(s);
4126        if (r.forceToAxis)
4127          if (t.isHorizontal()) {
4128            if (!(Math.abs(g.pixelX) > Math.abs(g.pixelY))) return !0;
4129            m = -g.pixelX * h;
4130          } else {
4131            if (!(Math.abs(g.pixelY) > Math.abs(g.pixelX))) return !0;
4132            m = -g.pixelY;
4133          }
4134        else
4135          m =
4136            Math.abs(g.pixelX) > Math.abs(g.pixelY) ? -g.pixelX * h : -g.pixelY;
4137        if (0 === m) return !0;
4138        r.invert && (m = -m);
4139        let v = t.getTranslate() + m * r.sensitivity;
4140        if (
4141          (v >= t.minTranslate() && (v = t.minTranslate()),
4142          v <= t.maxTranslate() && (v = t.maxTranslate()),
4143          (a =
4144            !!t.params.loop ||
4145            !(v === t.minTranslate() || v === t.maxTranslate())),
4146          a && t.params.nested && s.stopPropagation(),
4147          t.params.freeMode && t.params.freeMode.enabled)
4148        ) {
4149          const e = { time: o(), delta: Math.abs(m), direction: Math.sign(m) },
4150            a =
4151              c &&
4152              e.time < c.time + 500 &&
4153              e.delta <= c.delta &&
4154              e.direction === c.direction;
4155          if (!a) {
4156            c = void 0;
4157            let n = t.getTranslate() + m * r.sensitivity;
4158            const o = t.isBeginning,
4159              p = t.isEnd;
4160            if (
4161              (n >= t.minTranslate() && (n = t.minTranslate()),
4162              n <= t.maxTranslate() && (n = t.maxTranslate()),
4163              t.setTransition(0),
4164              t.setTranslate(n),
4165              t.updateProgress(),
4166              t.updateActiveIndex(),
4167              t.updateSlidesClasses(),
4168              ((!o && t.isBeginning) || (!p && t.isEnd)) &&
4169                t.updateSlidesClasses(),
4170              t.params.loop &&
4171                t.loopFix({
4172                  direction: e.direction < 0 ? "next" : "prev",
4173                  byMousewheel: !0,
4174                }),
4175              t.params.freeMode.sticky)
4176            ) {
4177              clearTimeout(d), (d = void 0), u.length >= 15 && u.shift();
4178              const s = u.length ? u[u.length - 1] : void 0,
4179                a = u[0];
4180              if (
4181                (u.push(e),
4182                s && (e.delta > s.delta || e.direction !== s.direction))
4183              )
4184                u.splice(0);
4185              else if (
4186                u.length >= 15 &&
4187                e.time - a.time < 500 &&
4188                a.delta - e.delta >= 1 &&
4189                e.delta <= 6
4190              ) {
4191                const s = m > 0 ? 0.8 : 0.2;
4192                (c = e),
4193                  u.splice(0),
4194                  (d = l(() => {
4195                    !t.destroyed &&
4196                      t.params &&
4197                      t.slideToClosest(t.params.speed, !0, void 0, s);
4198                  }, 0));
4199              }
4200              d ||
4201                (d = l(() => {
4202                  if (t.destroyed || !t.params) return;
4203                  (c = e),
4204                    u.splice(0),
4205                    t.slideToClosest(t.params.speed, !0, void 0, 0.5);
4206                }, 500));
4207            }
4208            if (
4209              (a || i("scroll", s),
4210              t.params.autoplay &&
4211                t.params.autoplay.disableOnInteraction &&
4212                t.autoplay.stop(),
4213              r.releaseOnEdges &&
4214                (n === t.minTranslate() || n === t.maxTranslate()))
4215            )
4216              return !0;
4217          }
4218        } else {
4219          const s = {
4220            time: o(),
4221            delta: Math.abs(m),
4222            direction: Math.sign(m),
4223            raw: e,
4224          };
4225          u.length >= 2 && u.shift();
4226          const a = u.length ? u[u.length - 1] : void 0;
4227          if (
4228            (u.push(s),
4229            a
4230              ? (s.direction !== a.direction ||
4231                  s.delta > a.delta ||
4232                  s.time > a.time + 150) &&
4233                f(s)
4234              : f(s),
4235            (function (e) {
4236              const s = t.params.mousewheel;
4237              if (e.direction < 0) {
4238                if (t.isEnd && !t.params.loop && s.releaseOnEdges) return !0;
4239              } else if (t.isBeginning && !t.params.loop && s.releaseOnEdges)
4240                return !0;
4241              return !1;
4242            })(s))
4243          )
4244            return !0;
4245        }
4246        return s.preventDefault ? s.preventDefault() : (s.returnValue = !1), !1;
4247      }
4248      function v(e) {
4249        let s = t.el;
4250        "container" !== t.params.mousewheel.eventsTarget &&
4251          (s = document.querySelector(t.params.mousewheel.eventsTarget)),
4252          s[e]("mouseenter", m),
4253          s[e]("mouseleave", h),
4254          s[e]("wheel", g);
4255      }
4256      function w() {
4257        return t.params.cssMode
4258          ? (t.wrapperEl.removeEventListener("wheel", g), !0)
4259          : !t.mousewheel.enabled &&
4260              (v("addEventListener"), (t.mousewheel.enabled = !0), !0);
4261      }
4262      function b() {
4263        return t.params.cssMode
4264          ? (t.wrapperEl.addEventListener(event, g), !0)
4265          : !!t.mousewheel.enabled &&
4266              (v("removeEventListener"), (t.mousewheel.enabled = !1), !0);
4267      }
4268      a("init", () => {
4269        !t.params.mousewheel.enabled && t.params.cssMode && b(),
4270          t.params.mousewheel.enabled && w();
4271      }),
4272        a("destroy", () => {
4273          t.params.cssMode && w(), t.mousewheel.enabled && b();
4274        }),
4275        Object.assign(t.mousewheel, { enable: w, disable: b });
4276    },
4277    function (e) {
4278      let { swiper: t, extendParams: s, on: a, emit: i } = e;
4279      function r(e) {
4280        let s;
4281        return e &&
4282          "string" == typeof e &&
4283          t.isElement &&
4284          ((s = t.el.querySelector(e) || t.hostEl.querySelector(e)), s)
4285          ? s
4286          : (e &&
4287              ("string" == typeof e && (s = [...document.querySelectorAll(e)]),
4288              t.params.uniqueNavElements &&
4289              "string" == typeof e &&
4290              s &&
4291              s.length > 1 &&
4292              1 === t.el.querySelectorAll(e).length
4293                ? (s = t.el.querySelector(e))
4294                : s && 1 === s.length && (s = s[0])),
4295            e && !s ? e : s);
4296      }
4297      function n(e, s) {
4298        const a = t.params.navigation;
4299        (e = T(e)).forEach((e) => {
4300          e &&
4301            (e.classList[s ? "add" : "remove"](...a.disabledClass.split(" ")),
4302            "BUTTON" === e.tagName && (e.disabled = s),
4303            t.params.watchOverflow &&
4304              t.enabled &&
4305              e.classList[t.isLocked ? "add" : "remove"](a.lockClass));
4306        });
4307      }
4308      function l() {
4309        const { nextEl: e, prevEl: s } = t.navigation;
4310        if (t.params.loop) return n(s, !1), void n(e, !1);
4311        n(s, t.isBeginning && !t.params.rewind),
4312          n(e, t.isEnd && !t.params.rewind);
4313      }
4314      function o(e) {
4315        e.preventDefault(),
4316          (!t.isBeginning || t.params.loop || t.params.rewind) &&
4317            (t.slidePrev(), i("navigationPrev"));
4318      }
4319      function d(e) {
4320        e.preventDefault(),
4321          (!t.isEnd || t.params.loop || t.params.rewind) &&
4322            (t.slideNext(), i("navigationNext"));
4323      }
4324      function c() {
4325        const e = t.params.navigation;
4326        if (
4327          ((t.params.navigation = ne(
4328            t,
4329            t.originalParams.navigation,
4330            t.params.navigation,
4331            { nextEl: "swiper-button-next", prevEl: "swiper-button-prev" }
4332          )),
4333          !e.nextEl && !e.prevEl)
4334        )
4335          return;
4336        let s = r(e.nextEl),
4337          a = r(e.prevEl);
4338        Object.assign(t.navigation, { nextEl: s, prevEl: a }),
4339          (s = T(s)),
4340          (a = T(a));
4341        const i = (s, a) => {
4342          s && s.addEventListener("click", "next" === a ? d : o),
4343            !t.enabled && s && s.classList.add(...e.lockClass.split(" "));
4344        };
4345        s.forEach((e) => i(e, "next")), a.forEach((e) => i(e, "prev"));
4346      }
4347      function p() {
4348        let { nextEl: e, prevEl: s } = t.navigation;
4349        (e = T(e)), (s = T(s));
4350        const a = (e, s) => {
4351          e.removeEventListener("click", "next" === s ? d : o),
4352            e.classList.remove(...t.params.navigation.disabledClass.split(" "));
4353        };
4354        e.forEach((e) => a(e, "next")), s.forEach((e) => a(e, "prev"));
4355      }
4356      s({
4357        navigation: {
4358          nextEl: null,
4359          prevEl: null,
4360          hideOnClick: !1,
4361          disabledClass: "swiper-button-disabled",
4362          hiddenClass: "swiper-button-hidden",
4363          lockClass: "swiper-button-lock",
4364          navigationDisabledClass: "swiper-navigation-disabled",
4365        },
4366      }),
4367        (t.navigation = { nextEl: null, prevEl: null }),
4368        a("init", () => {
4369          !1 === t.params.navigation.enabled ? u() : (c(), l());
4370        }),
4371        a("toEdge fromEdge lock unlock", () => {
4372          l();
4373        }),
4374        a("destroy", () => {
4375          p();
4376        }),
4377        a("enable disable", () => {
4378          let { nextEl: e, prevEl: s } = t.navigation;
4379          (e = T(e)),
4380            (s = T(s)),
4381            t.enabled
4382              ? l()
4383              : [...e, ...s]
4384                  .filter((e) => !!e)
4385                  .forEach((e) =>
4386                    e.classList.add(t.params.navigation.lockClass)
4387                  );
4388        }),
4389        a("click", (e, s) => {
4390          let { nextEl: a, prevEl: r } = t.navigation;
4391          (a = T(a)), (r = T(r));
4392          const n = s.target;
4393          let l = r.includes(n) || a.includes(n);
4394          if (t.isElement && !l) {
4395            const e = s.path || (s.composedPath && s.composedPath());
4396            e && (l = e.find((e) => a.includes(e) || r.includes(e)));
4397          }
4398          if (t.params.navigation.hideOnClick && !l) {
4399            if (
4400              t.pagination &&
4401              t.params.pagination &&
4402              t.params.pagination.clickable &&
4403              (t.pagination.el === n || t.pagination.el.contains(n))
4404            )
4405              return;
4406            let e;
4407            a.length
4408              ? (e = a[0].classList.contains(t.params.navigation.hiddenClass))
4409              : r.length &&
4410                (e = r[0].classList.contains(t.params.navigation.hiddenClass)),
4411              i(!0 === e ? "navigationShow" : "navigationHide"),
4412              [...a, ...r]
4413                .filter((e) => !!e)
4414                .forEach((e) =>
4415                  e.classList.toggle(t.params.navigation.hiddenClass)
4416                );
4417          }
4418        });
4419      const u = () => {
4420        t.el.classList.add(
4421          ...t.params.navigation.navigationDisabledClass.split(" ")
4422        ),
4423          p();
4424      };
4425      Object.assign(t.navigation, {
4426        enable: () => {
4427          t.el.classList.remove(
4428            ...t.params.navigation.navigationDisabledClass.split(" ")
4429          ),
4430            c(),
4431            l();
4432        },
4433        disable: u,
4434        update: l,
4435        init: c,
4436        destroy: p,
4437      });
4438    },
4439    function (e) {
4440      let { swiper: t, extendParams: s, on: a, emit: i } = e;
4441      const r = "swiper-pagination";
4442      let n;
4443      s({
4444        pagination: {
4445          el: null,
4446          bulletElement: "span",
4447          clickable: !1,
4448          hideOnClick: !1,
4449          renderBullet: null,
4450          renderProgressbar: null,
4451          renderFraction: null,
4452          renderCustom: null,
4453          progressbarOpposite: !1,
4454          type: "bullets",
4455          dynamicBullets: !1,
4456          dynamicMainBullets: 1,
4457          formatFractionCurrent: (e) => e,
4458          formatFractionTotal: (e) => e,
4459          bulletClass: `${r}-bullet`,
4460          bulletActiveClass: `${r}-bullet-active`,
4461          modifierClass: `${r}-`,
4462          currentClass: `${r}-current`,
4463          totalClass: `${r}-total`,
4464          hiddenClass: `${r}-hidden`,
4465          progressbarFillClass: `${r}-progressbar-fill`,
4466          progressbarOppositeClass: `${r}-progressbar-opposite`,
4467          clickableClass: `${r}-clickable`,
4468          lockClass: `${r}-lock`,
4469          horizontalClass: `${r}-horizontal`,
4470          verticalClass: `${r}-vertical`,
4471          paginationDisabledClass: `${r}-disabled`,
4472        },
4473      }),
4474        (t.pagination = { el: null, bullets: [] });
4475      let l = 0;
4476      function o() {
4477        return (
4478          !t.params.pagination.el ||
4479          !t.pagination.el ||
4480          (Array.isArray(t.pagination.el) && 0 === t.pagination.el.length)
4481        );
4482      }
4483      function d(e, s) {
4484        const { bulletActiveClass: a } = t.params.pagination;
4485        e &&
4486          (e = e[("prev" === s ? "previous" : "next") + "ElementSibling"]) &&
4487          (e.classList.add(`${a}-${s}`),
4488          (e = e[("prev" === s ? "previous" : "next") + "ElementSibling"]) &&
4489            e.classList.add(`${a}-${s}-${s}`));
4490      }
4491      function c(e) {
4492        const s = e.target.closest(le(t.params.pagination.bulletClass));
4493        if (!s) return;
4494        e.preventDefault();
4495        const a = y(s) * t.params.slidesPerGroup;
4496        if (t.params.loop) {
4497          if (t.realIndex === a) return;
4498          const e =
4499            ((i = t.realIndex),
4500            (r = a),
4501            (n = t.slides.length),
4502            (r %= n) == 1 + (i %= n)
4503              ? "next"
4504              : r === i - 1
4505              ? "previous"
4506              : void 0);
4507          "next" === e
4508            ? t.slideNext()
4509            : "previous" === e
4510            ? t.slidePrev()
4511            : t.slideToLoop(a);
4512        } else t.slideTo(a);
4513        var i, r, n;
4514      }
4515      function p() {
4516        const e = t.rtl,
4517          s = t.params.pagination;
4518        if (o()) return;
4519        let a,
4520          r,
4521          c = t.pagination.el;
4522        c = T(c);
4523        const p =
4524            t.virtual && t.params.virtual.enabled
4525              ? t.virtual.slides.length
4526              : t.slides.length,
4527          u = t.params.loop
4528            ? Math.ceil(p / t.params.slidesPerGroup)
4529            : t.snapGrid.length;
4530        if (
4531          (t.params.loop
4532            ? ((r = t.previousRealIndex || 0),
4533              (a =
4534                t.params.slidesPerGroup > 1
4535                  ? Math.floor(t.realIndex / t.params.slidesPerGroup)
4536                  : t.realIndex))
4537            : void 0 !== t.snapIndex
4538            ? ((a = t.snapIndex), (r = t.previousSnapIndex))
4539            : ((r = t.previousIndex || 0), (a = t.activeIndex || 0)),
4540          "bullets" === s.type &&
4541            t.pagination.bullets &&
4542            t.pagination.bullets.length > 0)
4543        ) {
4544          const i = t.pagination.bullets;
4545          let o, p, u;
4546          if (
4547            (s.dynamicBullets &&
4548              ((n = S(i[0], t.isHorizontal() ? "width" : "height", !0)),
4549              c.forEach((e) => {
4550                e.style[t.isHorizontal() ? "width" : "height"] =
4551                  n * (s.dynamicMainBullets + 4) + "px";
4552              }),
4553              s.dynamicMainBullets > 1 &&
4554                void 0 !== r &&
4555                ((l += a - (r || 0)),
4556                l > s.dynamicMainBullets - 1
4557                  ? (l = s.dynamicMainBullets - 1)
4558                  : l < 0 && (l = 0)),
4559              (o = Math.max(a - l, 0)),
4560              (p = o + (Math.min(i.length, s.dynamicMainBullets) - 1)),
4561              (u = (p + o) / 2)),
4562            i.forEach((e) => {
4563              const t = [
4564                ...[
4565                  "",
4566                  "-next",
4567                  "-next-next",
4568                  "-prev",
4569                  "-prev-prev",
4570                  "-main",
4571                ].map((e) => `${s.bulletActiveClass}${e}`),
4572              ]
4573                .map((e) =>
4574                  "string" == typeof e && e.includes(" ") ? e.split(" ") : e
4575                )
4576                .flat();
4577              e.classList.remove(...t);
4578            }),
4579            c.length > 1)
4580          )
4581            i.forEach((e) => {
4582              const i = y(e);
4583              i === a
4584                ? e.classList.add(...s.bulletActiveClass.split(" "))
4585                : t.isElement && e.setAttribute("part", "bullet"),
4586                s.dynamicBullets &&
4587                  (i >= o &&
4588                    i <= p &&
4589                    e.classList.add(
4590                      ...`${s.bulletActiveClass}-main`.split(" ")
4591                    ),
4592                  i === o && d(e, "prev"),
4593                  i === p && d(e, "next"));
4594            });
4595          else {
4596            const e = i[a];
4597            if (
4598              (e && e.classList.add(...s.bulletActiveClass.split(" ")),
4599              t.isElement &&
4600                i.forEach((e, t) => {
4601                  e.setAttribute("part", t === a ? "bullet-active" : "bullet");
4602                }),
4603              s.dynamicBullets)
4604            ) {
4605              const e = i[o],
4606                t = i[p];
4607              for (let e = o; e <= p; e += 1)
4608                i[e] &&
4609                  i[e].classList.add(
4610                    ...`${s.bulletActiveClass}-main`.split(" ")
4611                  );
4612              d(e, "prev"), d(t, "next");
4613            }
4614          }
4615          if (s.dynamicBullets) {
4616            const a = Math.min(i.length, s.dynamicMainBullets + 4),
4617              r = (n * a - n) / 2 - u * n,
4618              l = e ? "right" : "left";
4619            i.forEach((e) => {
4620              e.style[t.isHorizontal() ? l : "top"] = `${r}px`;
4621            });
4622          }
4623        }
4624        c.forEach((e, r) => {
4625          if (
4626            ("fraction" === s.type &&
4627              (e.querySelectorAll(le(s.currentClass)).forEach((e) => {
4628                e.textContent = s.formatFractionCurrent(a + 1);
4629              }),
4630              e.querySelectorAll(le(s.totalClass)).forEach((e) => {
4631                e.textContent = s.formatFractionTotal(u);
4632              })),
4633            "progressbar" === s.type)
4634          ) {
4635            let i;
4636            i = s.progressbarOpposite
4637              ? t.isHorizontal()
4638                ? "vertical"
4639                : "horizontal"
4640              : t.isHorizontal()
4641              ? "horizontal"
4642              : "vertical";
4643            const r = (a + 1) / u;
4644            let n = 1,
4645              l = 1;
4646            "horizontal" === i ? (n = r) : (l = r),
4647              e.querySelectorAll(le(s.progressbarFillClass)).forEach((e) => {
4648                (e.style.transform = `translate3d(0,0,0) scaleX(${n}) scaleY(${l})`),
4649                  (e.style.transitionDuration = `${t.params.speed}ms`);
4650              });
4651          }
4652          "custom" === s.type && s.renderCustom
4653            ? (C(e, s.renderCustom(t, a + 1, u)),
4654              0 === r && i("paginationRender", e))
4655            : (0 === r && i("paginationRender", e), i("paginationUpdate", e)),
4656            t.params.watchOverflow &&
4657              t.enabled &&
4658              e.classList[t.isLocked ? "add" : "remove"](s.lockClass);
4659        });
4660      }
4661      function u() {
4662        const e = t.params.pagination;
4663        if (o()) return;
4664        const s =
4665          t.virtual && t.params.virtual.enabled
4666            ? t.virtual.slides.length
4667            : t.grid && t.params.grid.rows > 1
4668            ? t.slides.length / Math.ceil(t.params.grid.rows)
4669            : t.slides.length;
4670        let a = t.pagination.el;
4671        a = T(a);
4672        let r = "";
4673        if ("bullets" === e.type) {
4674          let a = t.params.loop
4675            ? Math.ceil(s / t.params.slidesPerGroup)
4676            : t.snapGrid.length;
4677          t.params.freeMode && t.params.freeMode.enabled && a > s && (a = s);
4678          for (let s = 0; s < a; s += 1)
4679            e.renderBullet
4680              ? (r += e.renderBullet.call(t, s, e.bulletClass))
4681              : (r += `<${e.bulletElement} ${
4682                  t.isElement ? 'part="bullet"' : ""
4683                } class="${e.bulletClass}"></${e.bulletElement}>`);
4684        }
4685        "fraction" === e.type &&
4686          (r = e.renderFraction
4687            ? e.renderFraction.call(t, e.currentClass, e.totalClass)
4688            : `<span class="${e.currentClass}"></span> / <span class="${e.totalClass}"></span>`),
4689          "progressbar" === e.type &&
4690            (r = e.renderProgressbar
4691              ? e.renderProgressbar.call(t, e.progressbarFillClass)
4692              : `<span class="${e.progressbarFillClass}"></span>`),
4693          (t.pagination.bullets = []),
4694          a.forEach((s) => {
4695            "custom" !== e.type && C(s, r || ""),
4696              "bullets" === e.type &&
4697                t.pagination.bullets.push(
4698                  ...s.querySelectorAll(le(e.bulletClass))
4699                );
4700          }),
4701          "custom" !== e.type && i("paginationRender", a[0]);
4702      }
4703      function m() {
4704        t.params.pagination = ne(
4705          t,
4706          t.originalParams.pagination,
4707          t.params.pagination,
4708          { el: "swiper-pagination" }
4709        );
4710        const e = t.params.pagination;
4711        if (!e.el) return;
4712        let s;
4713        "string" == typeof e.el &&
4714          t.isElement &&
4715          (s = t.el.querySelector(e.el)),
4716          s ||
4717            "string" != typeof e.el ||
4718            (s = [...document.querySelectorAll(e.el)]),
4719          s || (s = e.el),
4720          s &&
4721            0 !== s.length &&
4722            (t.params.uniqueNavElements &&
4723              "string" == typeof e.el &&
4724              Array.isArray(s) &&
4725              s.length > 1 &&
4726              ((s = [...t.el.querySelectorAll(e.el)]),
4727              s.length > 1 && (s = s.find((e) => E(e, ".swiper")[0] === t.el))),
4728            Array.isArray(s) && 1 === s.length && (s = s[0]),
4729            Object.assign(t.pagination, { el: s }),
4730            (s = T(s)),
4731            s.forEach((s) => {
4732              "bullets" === e.type &&
4733                e.clickable &&
4734                s.classList.add(...(e.clickableClass || "").split(" ")),
4735                s.classList.add(e.modifierClass + e.type),
4736                s.classList.add(
4737                  t.isHorizontal() ? e.horizontalClass : e.verticalClass
4738                ),
4739                "bullets" === e.type &&
4740                  e.dynamicBullets &&
4741                  (s.classList.add(`${e.modifierClass}${e.type}-dynamic`),
4742                  (l = 0),
4743                  e.dynamicMainBullets < 1 && (e.dynamicMainBullets = 1)),
4744                "progressbar" === e.type &&
4745                  e.progressbarOpposite &&
4746                  s.classList.add(e.progressbarOppositeClass),
4747                e.clickable && s.addEventListener("click", c),
4748                t.enabled || s.classList.add(e.lockClass);
4749            }));
4750      }
4751      function h() {
4752        const e = t.params.pagination;
4753        if (o()) return;
4754        let s = t.pagination.el;
4755        s &&
4756          ((s = T(s)),
4757          s.forEach((s) => {
4758            s.classList.remove(e.hiddenClass),
4759              s.classList.remove(e.modifierClass + e.type),
4760              s.classList.remove(
4761                t.isHorizontal() ? e.horizontalClass : e.verticalClass
4762              ),
4763              e.clickable &&
4764                (s.classList.remove(...(e.clickableClass || "").split(" ")),
4765                s.removeEventListener("click", c));
4766          })),
4767          t.pagination.bullets &&
4768            t.pagination.bullets.forEach((t) =>
4769              t.classList.remove(...e.bulletActiveClass.split(" "))
4770            );
4771      }
4772      a("changeDirection", () => {
4773        if (!t.pagination || !t.pagination.el) return;
4774        const e = t.params.pagination;
4775        let { el: s } = t.pagination;
4776        (s = T(s)),
4777          s.forEach((s) => {
4778            s.classList.remove(e.horizontalClass, e.verticalClass),
4779              s.classList.add(
4780                t.isHorizontal() ? e.horizontalClass : e.verticalClass
4781              );
4782          });
4783      }),
4784        a("init", () => {
4785          !1 === t.params.pagination.enabled ? f() : (m(), u(), p());
4786        }),
4787        a("activeIndexChange", () => {
4788          void 0 === t.snapIndex && p();
4789        }),
4790        a("snapIndexChange", () => {
4791          p();
4792        }),
4793        a("snapGridLengthChange", () => {
4794          u(), p();
4795        }),
4796        a("destroy", () => {
4797          h();
4798        }),
4799        a("enable disable", () => {
4800          let { el: e } = t.pagination;
4801          e &&
4802            ((e = T(e)),
4803            e.forEach((e) =>
4804              e.classList[t.enabled ? "remove" : "add"](
4805                t.params.pagination.lockClass
4806              )
4807            ));
4808        }),
4809        a("lock unlock", () => {
4810          p();
4811        }),
4812        a("click", (e, s) => {
4813          const a = s.target,
4814            r = T(t.pagination.el);
4815          if (
4816            t.params.pagination.el &&
4817            t.params.pagination.hideOnClick &&
4818            r &&
4819            r.length > 0 &&
4820            !a.classList.contains(t.params.pagination.bulletClass)
4821          ) {
4822            if (
4823              t.navigation &&
4824              ((t.navigation.nextEl && a === t.navigation.nextEl) ||
4825                (t.navigation.prevEl && a === t.navigation.prevEl))
4826            )
4827              return;
4828            const e = r[0].classList.contains(t.params.pagination.hiddenClass);
4829            i(!0 === e ? "paginationShow" : "paginationHide"),
4830              r.forEach((e) =>
4831                e.classList.toggle(t.params.pagination.hiddenClass)
4832              );
4833          }
4834        });
4835      const f = () => {
4836        t.el.classList.add(t.params.pagination.paginationDisabledClass);
4837        let { el: e } = t.pagination;
4838        e &&
4839          ((e = T(e)),
4840          e.forEach((e) =>
4841            e.classList.add(t.params.pagination.paginationDisabledClass)
4842          )),
4843          h();
4844      };
4845      Object.assign(t.pagination, {
4846        enable: () => {
4847          t.el.classList.remove(t.params.pagination.paginationDisabledClass);
4848          let { el: e } = t.pagination;
4849          e &&
4850            ((e = T(e)),
4851            e.forEach((e) =>
4852              e.classList.remove(t.params.pagination.paginationDisabledClass)
4853            )),
4854            m(),
4855            u(),
4856            p();
4857        },
4858        disable: f,
4859        render: u,
4860        update: p,
4861        init: m,
4862        destroy: h,
4863      });
4864    },
4865    function (e) {
4866      let { swiper: t, extendParams: s, on: i, emit: r }
4866 = e;
4867      const o = a();
4868      let d,
4869        c,
4870        p,
4871        u,
4872        m = !1,
4873        h = null,
4874        f = null;
4875      function g() {
4876        if (!t.params.scrollbar.el || !t.scrollbar.el) return;
4877        const { scrollbar: e, rtlTranslate: s } = t,
4878          { dragEl: a, el: i } = e,
4879          r = t.params.scrollbar,
4880          n = t.params.loop ? t.progressLoop : t.progress;
4881        let l = c,
4882          o = (p - c) * n;
4883        s
4884          ? ((o = -o),
4885            o > 0 ? ((l = c - o), (o = 0)) : -o + c > p && (l = p + o))
4886          : o < 0
4887          ? ((l = c + o), (o = 0))
4888          : o + c > p && (l = p - o),
4889          t.isHorizontal()
4890            ? ((a.style.transform = `translate3d(${o}px, 0, 0)`),
4891              (a.style.width = `${l}px`))
4892            : ((a.style.transform = `translate3d(0px, ${o}px, 0)`),
4893              (a.style.height = `${l}px`)),
4894          r.hide &&
4895            (clearTimeout(h),
4896            (i.style.opacity = 1),
4897            (h = setTimeout(() => {
4898              (i.style.opacity = 0), (i.style.transitionDuration = "400ms");
4899            }, 1e3)));
4900      }
4901      function b() {
4902        if (!t.params.scrollbar.el || !t.scrollbar.el) return;
4903        const { scrollbar: e } = t,
4904          { dragEl: s, el: a } = e;
4905        (s.style.width = ""),
4906          (s.style.height = ""),
4907          (p = t.isHorizontal() ? a.offsetWidth : a.offsetHeight),
4908          (u =
4909            t.size /
4910            (t.virtualSize +
4911              t.params.slidesOffsetBefore -
4912              (t.params.centeredSlides ? t.snapGrid[0] : 0))),
4913          (c =
4914            "auto" === t.params.scrollbar.dragSize
4915              ? p * u
4916              : parseInt(t.params.scrollbar.dragSize, 10)),
4917          t.isHorizontal()
4918            ? (s.style.width = `${c}px`)
4919            : (s.style.height = `${c}px`),
4920          (a.style.display = u >= 1 ? "none" : ""),
4921          t.params.scrollbar.hide && (a.style.opacity = 0),
4922          t.params.watchOverflow &&
4923            t.enabled &&
4924            e.el.classList[t.isLocked ? "add" : "remove"](
4925              t.params.scrollbar.lockClass
4926            );
4927      }
4928      function y(e) {
4929        return t.isHorizontal() ? e.clientX : e.clientY;
4930      }
4931      function E(e) {
4932        const { scrollbar: s, rtlTranslate: a } = t,
4933          { el: i } = s;
4934        let r;
4935        (r =
4936          (y(e) -
4937            w(i)[t.isHorizontal() ? "left" : "top"] -
4938            (null !== d ? d : c / 2)) /
4939          (p - c)),
4940          (r = Math.max(Math.min(r, 1), 0)),
4941          a && (r = 1 - r);
4942        const n = t.minTranslate() + (t.maxTranslate() - t.minTranslate()) * r;
4943        t.updateProgress(n),
4944          t.setTranslate(n),
4945          t.updateActiveIndex(),
4946          t.updateSlidesClasses();
4947      }
4948      function x(e) {
4949        const s = t.params.scrollbar,
4950          { scrollbar: a, wrapperEl: i } = t,
4951          { el: n, dragEl: l } = a;
4952        (m = !0),
4953          (d =
4954            e.target === l
4955              ? y(e) -
4956                e.target.getBoundingClientRect()[
4957                  t.isHorizontal() ? "left" : "top"
4958                ]
4959              : null),
4960          e.preventDefault(),
4961          e.stopPropagation(),
4962          (i.style.transitionDuration = "100ms"),
4963          (l.style.transitionDuration = "100ms"),
4964          E(e),
4965          clearTimeout(f),
4966          (n.style.transitionDuration = "0ms"),
4967          s.hide && (n.style.opacity = 1),
4968          t.params.cssMode && (t.wrapperEl.style["scroll-snap-type"] = "none"),
4969          r("scrollbarDragStart", e);
4970      }
4971      function S(e) {
4972        const { scrollbar: s, wrapperEl: a } = t,
4973          { el: i, dragEl: n } = s;
4974        m &&
4975          (e.preventDefault && e.cancelable
4976            ? e.preventDefault()
4977            : (e.returnValue = !1),
4978          E(e),
4979          (a.style.transitionDuration = "0ms"),
4980          (i.style.transitionDuration = "0ms"),
4981          (n.style.transitionDuration = "0ms"),
4982          r("scrollbarDragMove", e));
4983      }
4984      function M(e) {
4985        const s = t.params.scrollbar,
4986          { scrollbar: a, wrapperEl: i } = t,
4987          { el: n } = a;
4988        m &&
4989          ((m = !1),
4990          t.params.cssMode &&
4991            ((t.wrapperEl.style["scroll-snap-type"] = ""),
4992            (i.style.transitionDuration = "")),
4993          s.hide &&
4994            (clearTimeout(f),
4995            (f = l(() => {
4996              (n.style.opacity = 0), (n.style.transitionDuration = "400ms");
4997            }, 1e3))),
4998          r("scrollbarDragEnd", e),
4999          s.snapOnRelease && t.slideToClosest());
5000      }
5001      function C(e) {
5002        const { scrollbar: s, params: a } = t,
5003          i = s.el;
5004        if (!i) return;
5005        const r = i,
5006          n = !!a.passiveListeners && { passive: !1, capture: !1 },
5007          l = !!a.passiveListeners && { passive: !0, capture: !1 };
5008        if (!r) return;
5009        const d = "on" === e ? "addEventListener" : "removeEventListener";
5010        r[d]("pointerdown", x, n),
5011          o[d]("pointermove", S, n),
5012          o[d]("pointerup", M, l);
5013      }
5014      function P() {
5015        const { scrollbar: e, el: s } = t;
5016        t.params.scrollbar = ne(
5017          t,
5018          t.originalParams.scrollbar,
5019          t.params.scrollbar,
5020          { el: "swiper-scrollbar" }
5021        );
5022        const a = t.params.scrollbar;
5023        if (!a.el) return;
5024        let i, r;
5025        if (
5026          ("string" == typeof a.el &&
5027            t.isElement &&
5028            (i = t.el.querySelector(a.el)),
5029          i || "string" != typeof a.el)
5030        )
5031          i || (i = a.el);
5032        else if (((i = o.querySelectorAll(a.el)), !i.length)) return;
5033        t.params.uniqueNavElements &&
5034          "string" == typeof a.el &&
5035          i.length > 1 &&
5036          1 === s.querySelectorAll(a.el).length &&
5037          (i = s.querySelector(a.el)),
5038          i.length > 0 && (i = i[0]),
5039          i.classList.add(
5040            t.isHorizontal() ? a.horizontalClass : a.verticalClass
5041          ),
5042          i &&
5043            ((r = i.querySelector(le(t.params.scrollbar.dragClass))),
5044            r || ((r = v("div", t.params.scrollbar.dragClass)), i.append(r))),
5045          Object.assign(e, { el: i, dragEl: r }),
5046          a.draggable && t.params.scrollbar.el && t.scrollbar.el && C("on"),
5047          i &&
5048            i.classList[t.enabled ? "remove" : "add"](
5049              ...n(t.params.scrollbar.lockClass)
5050            );
5051      }
5052      function L() {
5053        const e = t.params.scrollbar,
5054          s = t.scrollbar.el;
5055        s &&
5056          s.classList.remove(
5057            ...n(t.isHorizontal() ? e.horizontalClass : e.verticalClass)
5058          ),
5059          t.params.scrollbar.el && t.scrollbar.el && C("off");
5060      }
5061      s({
5062        scrollbar: {
5063          el: null,
5064          dragSize: "auto",
5065          hide: !1,
5066          draggable: !1,
5067          snapOnRelease: !0,
5068          lockClass: "swiper-scrollbar-lock",
5069          dragClass: "swiper-scrollbar-drag",
5070          scrollbarDisabledClass: "swiper-scrollbar-disabled",
5071          horizontalClass: "swiper-scrollbar-horizontal",
5072          verticalClass: "swiper-scrollbar-vertical",
5073        },
5074      }),
5075        (t.scrollbar = { el: null, dragEl: null }),
5076        i("changeDirection", () => {
5077          if (!t.scrollbar || !t.scrollbar.el) return;
5078          const e = t.params.scrollbar;
5079          let { el: s } = t.scrollbar;
5080          (s = T(s)),
5081            s.forEach((s) => {
5082              s.classList.remove(e.horizontalClass, e.verticalClass),
5083                s.classList.add(
5084                  t.isHorizontal() ? e.horizontalClass : e.verticalClass
5085                );
5086            });
5087        }),
5088        i("init", () => {
5089          !1 === t.params.scrollbar.enabled ? I() : (P(), b(), g());
5090        }),
5091        i("update resize observerUpdate lock unlock changeDirection", () => {
5092          b();
5093        }),
5094        i("setTranslate", () => {
5095          g();
5096        }),
5097        i("setTransition", (e, s) => {
5098          !(function (e) {
5099            t.params.scrollbar.el &&
5100              t.scrollbar.el &&
5101              (t.scrollbar.dragEl.style.transitionDuration = `${e}ms`);
5102          })(s);
5103        }),
5104        i("enable disable", () => {
5105          const { el: e } = t.scrollbar;
5106          e &&
5107            e.classList[t.enabled ? "remove" : "add"](
5108              ...n(t.params.scrollbar.lockClass)
5109            );
5110        }),
5111        i("destroy", () => {
5112          L();
5113        });
5114      const I = () => {
5115        t.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)),
5116          t.scrollbar.el &&
5117            t.scrollbar.el.classList.add(
5118              ...n(t.params.scrollbar.scrollbarDisabledClass)
5119            ),
5120          L();
5121      };
5122      Object.assign(t.scrollbar, {
5123        enable: () => {
5124          t.el.classList.remove(
5125            ...n(t.params.scrollbar.scrollbarDisabledClass)
5126          ),
5127            t.scrollbar.el &&
5128              t.scrollbar.el.classList.remove(
5129                ...n(t.params.scrollbar.scrollbarDisabledClass)
5130              ),
5131            P(),
5132            b(),
5133            g();
5134        },
5135        disable: I,
5136        updateSize: b,
5137        setTranslate: g,
5138        init: P,
5139        destroy: L,
5140      });
5141    },
5142    function (e) {
5143      let { swiper: t, extendParams: s, on: a } = e;
5144      s({ parallax: { enabled: !1 } });
5145      const i =
5146          "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]",
5147        r = (e, s) => {
5148          const { rtl: a } = t,
5149            i = a ? -1 : 1,
5150            r = e.getAttribute("data-swiper-parallax") || "0";
5151          let n = e.getAttribute("data-swiper-parallax-x"),
5152            l = e.getAttribute("data-swiper-parallax-y");
5153          const o = e.getAttribute("data-swiper-parallax-scale"),
5154            d = e.getAttribute("data-swiper-parallax-opacity"),
5155            c = e.getAttribute("data-swiper-parallax-rotate");
5156          if (
5157            (n || l
5158              ? ((n = n || "0"), (l = l || "0"))
5159              : t.isHorizontal()
5160              ? ((n = r), (l = "0"))
5161              : ((l = r), (n = "0")),
5162            (n =
5163              n.indexOf("%") >= 0
5164                ? parseInt(n, 10) * s * i + "%"
5165                : n * s * i + "px"),
5166            (l =
5167              l.indexOf("%") >= 0 ? parseInt(l, 10) * s + "%" : l * s + "px"),
5168            null != d)
5169          ) {
5170            const t = d - (d - 1) * (1 - Math.abs(s));
5171            e.style.opacity = t;
5172          }
5173          let p = `translate3d(${n}, ${l}, 0px)`;
5174          if (null != o) {
5175            p += ` scale(${o - (o - 1) * (1 - Math.abs(s))})`;
5176          }
5177          if (c && null != c) {
5178            p += ` rotate(${c * s * -1}deg)`;
5179          }
5180          e.style.transform = p;
5181        },
5182        n = () => {
5183          const {
5184              el: e,
5185              slides: s,
5186              progress: a,
5187              snapGrid: n,
5188              isElement: l,
5189            } = t,
5190            o = f(e, i);
5191          t.isElement && o.push(...f(t.hostEl, i)),
5192            o.forEach((e) => {
5193              r(e, a);
5194            }),
5195            s.forEach((e, s) => {
5196              let l = e.progress;
5197              t.params.slidesPerGroup > 1 &&
5198                "auto" !== t.params.slidesPerView &&
5199                (l += Math.ceil(s / 2) - a * (n.length - 1)),
5200                (l = Math.min(Math.max(l, -1), 1)),
5201                e
5202                  .querySelectorAll(`${i}, [data-swiper-parallax-rotate]`)
5203                  .forEach((e) => {
5204                    r(e, l);
5205                  });
5206            });
5207        };
5208      a("beforeInit", () => {
5209        t.params.parallax.enabled &&
5210          ((t.params.watchSlidesProgress = !0),
5211          (t.originalParams.watchSlidesProgress = !0));
5212      }),
5213        a("init", () => {
5214          t.params.parallax.enabled && n();
5215        }),
5216        a("setTranslate", () => {
5217          t.params.parallax.enabled && n();
5218        }),
5219        a("setTransition", (e, s) => {
5220          t.params.parallax.enabled &&
5221            (function (e) {
5222              void 0 === e && (e = t.params.speed);
5223              const { el: s, hostEl: a } = t,
5224                r = [...s.querySelectorAll(i)];
5225              t.isElement && r.push(...a.querySelectorAll(i)),
5226                r.forEach((t) => {
5227                  let s =
5228                    parseInt(
5229                      t.getAttribute("data-swiper-parallax-duration"),
5230                      10
5231                    ) || e;
5232                  0 === e && (s = 0), (t.style.transitionDuration = `${s}ms`);
5233                });
5234            })(s);
5235        });
5236    },
5237    function (e) {
5238      let { swiper: t, extendParams: s, on: a, emit: i } = e;
5239      const n = r();
5240      s({
5241        zoom: {
5242          enabled: !1,
5243          limitToOriginalSize: !1,
5244          maxRatio: 3,
5245          minRatio: 1,
5246          panOnMouseMove: !1,
5247          toggle: !0,
5248          containerClass: "swiper-zoom-container",
5249          zoomedSlideClass: "swiper-slide-zoomed",
5250        },
5251      }),
5252        (t.zoom = { enabled: !1 });
5253      let l = 1,
5254        o = !1,
5255        c = !1,
5256        p = { x: 0, y: 0 };
5257      const u = -3;
5258      let m, h;
5259      const g = [],
5260        v = {
5261          originX: 0,
5262          originY: 0,
5263          slideEl: void 0,
5264          slideWidth: void 0,
5265          slideHeight: void 0,
5266          imageEl: void 0,
5267          imageWrapEl: void 0,
5268          maxRatio: 3,
5269        },
5270        b = {
5271          isTouched: void 0,
5272          isMoved: void 0,
5273          currentX: void 0,
5274          currentY: void 0,
5275          minX: void 0,
5276          minY: void 0,
5277          maxX: void 0,
5278          maxY: void 0,
5279          width: void 0,
5280          height: void 0,
5281          startX: void 0,
5282          startY: void 0,
5283          touchesStart: {},
5284          touchesCurrent: {},
5285        },
5286        y = {
5287          x: void 0,
5288          y: void 0,
5289          prevPositionX: void 0,
5290          prevPositionY: void 0,
5291          prevTime: void 0,
5292        };
5293      let x,
5294        S = 1;
5295      function T() {
5296        if (g.length < 2) return 1;
5297        const e = g[0].pageX,
5298          t = g[0].pageY,
5299          s = g[1].pageX,
5300          a = g[1].pageY;
5301        return Math.sqrt((s - e) ** 2 + (a - t) ** 2);
5302      }
5303      function M() {
5304        const e = t.params.zoom,
5305          s = v.imageWrapEl.getAttribute("data-swiper-zoom") || e.maxRatio;
5306        if (e.limitToOriginalSize && v.imageEl && v.imageEl.naturalWidth) {
5307          const e = v.imageEl.naturalWidth / v.imageEl.offsetWidth;
5308          return Math.min(e, s);
5309        }
5310        return s;
5311      }
5312      function C(e) {
5313        const s = t.isElement ? "swiper-slide" : `.${t.params.slideClass}`;
5314        return (
5315          !!e.target.matches(s) ||
5316          t.slides.filter((t) => t.contains(e.target)).length > 0
5317        );
5318      }
5319      function P(e) {
5320        const s = `.${t.params.zoom.containerClass}`;
5321        return (
5322          !!e.target.matches(s) ||
5323          [...t.hostEl.querySelectorAll(s)].filter((t) => t.contains(e.target))
5324            .length > 0
5325        );
5326      }
5327      function L(e) {
5328        if (("mouse" === e.pointerType && g.splice(0, g.length), !C(e))) return;
5329        const s = t.params.zoom;
5330        if (((m = !1), (h = !1), g.push(e), !(g.length < 2))) {
5331          if (((m = !0), (v.scaleStart = T()), !v.slideEl)) {
5332            (v.slideEl = e.target.closest(
5333              `.${t.params.slideClass}, swiper-slide`
5334            )),
5335              v.slideEl || (v.slideEl = t.slides[t.activeIndex]);
5336            let a = v.slideEl.querySelector(`.${s.containerClass}`);
5337            if (
5338              (a &&
5339                (a = a.querySelectorAll(
5340                  "picture, img, svg, canvas, .swiper-zoom-target"
5341                )[0]),
5342              (v.imageEl = a),
5343              (v.imageWrapEl = a
5344                ? E(v.imageEl, `.${s.containerClass}`)[0]
5345                : void 0),
5346              !v.imageWrapEl)
5347            )
5348              return void (v.imageEl = void 0);
5349            v.maxRatio = M();
5350          }
5351          if (v.imageEl) {
5352            const [e, t] = (function () {
5353              if (g.length < 2) return { x: null, y: null };
5354              const e = v.imageEl.getBoundingClientRect();
5355              return [
5356                (g[0].pageX + (g[1].pageX - g[0].pageX) / 2 - e.x - n.scrollX) /
5357                  l,
5358                (g[0].pageY + (g[1].pageY - g[0].pageY) / 2 - e.y - n.scrollY) /
5359                  l,
5360              ];
5361            })();
5362            (v.originX = e),
5363              (v.originY = t),
5364              (v.imageEl.style.transitionDuration = "0ms");
5365          }
5366          o = !0;
5367        }
5368      }
5369      function I(e) {
5370        if (!C(e)) return;
5371        const s = t.params.zoom,
5372          a = t.zoom,
5373          i = g.findIndex((t) => t.pointerId === e.pointerId);
5374        i >= 0 && (g[i] = e),
5375          g.length < 2 ||
5376            ((h = !0),
5377            (v.scaleMove = T()),
5378            v.imageEl &&
5379              ((a.scale = (v.scaleMove / v.scaleStart) * l),
5380              a.scale > v.maxRatio &&
5381                (a.scale = v.maxRatio - 1 + (a.scale - v.maxRatio + 1) ** 0.5),
5382              a.scale < s.minRatio &&
5383                (a.scale = s.minRatio + 1 - (s.minRatio - a.scale + 1) ** 0.5),
5384              (v.imageEl.style.transform = `translate3d(0,0,0) scale(${a.scale})`)));
5385      }
5386      function z(e) {
5387        if (!C(e)) return;
5388        if ("mouse" === e.pointerType && "pointerout" === e.type) return;
5389        const s = t.params.zoom,
5390          a = t.zoom,
5391          i = g.findIndex((t) => t.pointerId === e.pointerId);
5392        i >= 0 && g.splice(i, 1),
5393          m &&
5394            h &&
5395            ((m = !1),
5396            (h = !1),
5397            v.imageEl &&
5398              ((a.scale = Math.max(Math.min(a.scale, v.maxRatio), s.minRatio)),
5399              (v.imageEl.style.transitionDuration = `${t.params.speed}ms`),
5400              (v.imageEl.style.transform = `translate3d(0,0,0) scale(${a.scale})`),
5401              (l = a.scale),
5402              (o = !1),
5403              a.scale > 1 && v.slideEl
5404                ? v.slideEl.classList.add(`${s.zoomedSlideClass}`)
5405                : a.scale <= 1 &&
5406                  v.slideEl &&
5407                  v.slideEl.classList.remove(`${s.zoomedSlideClass}`),
5408              1 === a.scale &&
5409                ((v.originX = 0), (v.originY = 0), (v.slideEl = void 0))));
5410      }
5411      function A() {
5412        t.touchEventsData.preventTouchMoveFromPointerMove = !1;
5413      }
5414      function $(e) {
5415        const s = "mouse" === e.pointerType && t.params.zoom.panOnMouseMove;
5416        if (!C(e) || !P(e)) return;
5417        const a = t.zoom;
5418        if (!v.imageEl) return;
5419        if (!b.isTouched || !v.slideEl) return void (s && O(e));
5420        if (s) return void O(e);
5421        b.isMoved ||
5422          ((b.width = v.imageEl.offsetWidth || v.imageEl.clientWidth),
5423          (b.height = v.imageEl.offsetHeight || v.imageEl.clientHeight),
5424          (b.startX = d(v.imageWrapEl, "x") || 0),
5425          (b.startY = d(v.imageWrapEl, "y") || 0),
5426          (v.slideWidth = v.slideEl.offsetWidth),
5427          (v.slideHeight = v.slideEl.offsetHeight),
5428          (v.imageWrapEl.style.transitionDuration = "0ms"));
5429        const i = b.width * a.scale,
5430          r = b.height * a.scale;
5431        (b.minX = Math.min(v.slideWidth / 2 - i / 2, 0)),
5432          (b.maxX = -b.minX),
5433          (b.minY = Math.min(v.slideHeight / 2 - r / 2, 0)),
5434          (b.maxY = -b.minY),
5435          (b.touchesCurrent.x = g.length > 0 ? g[0].pageX : e.pageX),
5436          (b.touchesCurrent.y = g.length > 0 ? g[0].pageY : e.pageY);
5437        if (
5438          (Math.max(
5439            Math.abs(b.touchesCurrent.x - b.touchesStart.x),
5440            Math.abs(b.touchesCurrent.y - b.touchesStart.y)
5441          ) > 5 && (t.allowClick = !1),
5442          !b.isMoved && !o)
5443        ) {
5444          if (
5445            t.isHorizontal() &&
5446            ((Math.floor(b.minX) === Math.floor(b.startX) &&
5447              b.touchesCurrent.x < b.touchesStart.x) ||
5448              (Math.floor(b.maxX) === Math.floor(b.startX) &&
5449                b.touchesCurrent.x > b.touchesStart.x))
5450          )
5451            return (b.isTouched = !1), void A();
5452          if (
5453            !t.isHorizontal() &&
5454            ((Math.floor(b.minY) === Math.floor(b.startY) &&
5455              b.touchesCurrent.y < b.touchesStart.y) ||
5456              (Math.floor(b.maxY) === Math.floor(b.startY) &&
5457                b.touchesCurrent.y > b.touchesStart.y))
5458          )
5459            return (b.isTouched = !1), void A();
5460        }
5461        e.cancelable && e.preventDefault(),
5462          e.stopPropagation(),
5463          clearTimeout(x),
5464          (t.touchEventsData.preventTouchMoveFromPointerMove = !0),
5465          (x = setTimeout(() => {
5466            t.destroyed || A();
5467          })),
5468          (b.isMoved = !0);
5469        const n = (a.scale - l) / (v.maxRatio - t.params.zoom.minRatio),
5470          { originX: c, originY: p } = v;
5471        (b.currentX =
5472          b.touchesCurrent.x -
5473          b.touchesStart.x +
5474          b.startX +
5475          n * (b.width - 2 * c)),
5476          (b.currentY =
5477            b.touchesCurrent.y -
5478            b.touchesStart.y +
5479            b.startY +
5480            n * (b.height - 2 * p)),
5481          b.currentX < b.minX &&
5482            (b.currentX = b.minX + 1 - (b.minX - b.currentX + 1) ** 0.8),
5483          b.currentX > b.maxX &&
5484            (b.currentX = b.maxX - 1 + (b.currentX - b.maxX + 1) ** 0.8),
5485          b.currentY < b.minY &&
5486            (b.currentY = b.minY + 1 - (b.minY - b.currentY + 1) ** 0.8),
5487          b.currentY > b.maxY &&
5488            (b.currentY = b.maxY - 1 + (b.currentY - b.maxY + 1) ** 0.8),
5489          y.prevPositionX || (y.prevPositionX = b.touchesCurrent.x),
5490          y.prevPositionY || (y.prevPositionY = b.touchesCurrent.y),
5491          y.prevTime || (y.prevTime = Date.now()),
5492          (y.x =
5493            (b.touchesCurrent.x - y.prevPositionX) /
5494            (Date.now() - y.prevTime) /
5495            2),
5496          (y.y =
5497            (b.touchesCurrent.y - y.prevPositionY) /
5498            (Date.now() - y.prevTime) /
5499            2),
5500          Math.abs(b.touchesCurrent.x - y.prevPositionX) < 2 && (y.x = 0),
5501          Math.abs(b.touchesCurrent.y - y.prevPositionY) < 2 && (y.y = 0),
5502          (y.prevPositionX = b.touchesCurrent.x),
5503          (y.prevPositionY = b.touchesCurrent.y),
5504          (y.prevTime = Date.now()),
5505          (v.imageWrapEl.style.transform = `translate3d(${b.currentX}px, ${b.currentY}px,0)`);
5506      }
5507      function k() {
5508        const e = t.zoom;
5509        v.slideEl &&
5510          t.activeIndex !== t.slides.indexOf(v.slideEl) &&
5511          (v.imageEl &&
5512            (v.imageEl.style.transform = "translate3d(0,0,0) scale(1)"),
5513          v.imageWrapEl &&
5514            (v.imageWrapEl.style.transform = "translate3d(0,0,0)"),
5515          v.slideEl.classList.remove(`${t.params.zoom.zoomedSlideClass}`),
5516          (e.scale = 1),
5517          (l = 1),
5518          (v.slideEl = void 0),
5519          (v.imageEl = void 0),
5520          (v.imageWrapEl = void 0),
5521          (v.originX = 0),
5522          (v.originY = 0));
5523      }
5524      function O(e) {
5525        if (l <= 1 || !v.imageWrapEl) return;
5526        if (!C(e) || !P(e)) return;
5527        const t = n.getComputedStyle(v.imageWrapEl).transform,
5528          s = new n.DOMMatrix(t);
5529        if (!c)
5530          return (
5531            (c = !0),
5532            (p.x = e.clientX),
5533            (p.y = e.clientY),
5534            (b.startX = s.e),
5535            (b.startY = s.f),
5536            (b.width = v.imageEl.offsetWidth || v.imageEl.clientWidth),
5537            (b.height = v.imageEl.offsetHeight || v.imageEl.clientHeight),
5538            (v.slideWidth = v.slideEl.offsetWidth),
5539            void (v.slideHeight = v.slideEl.offsetHeight)
5540          );
5541        const a = (e.clientX - p.x) * u,
5542          i = (e.clientY - p.y) * u,
5543          r = b.width * l,
5544          o = b.height * l,
5545          d = v.slideWidth,
5546          m = v.slideHeight,
5547          h = Math.min(d / 2 - r / 2, 0),
5548          f = -h,
5549          g = Math.min(m / 2 - o / 2, 0),
5550          w = -g,
5551          y = Math.max(Math.min(b.startX + a, f), h),
5552          E = Math.max(Math.min(b.startY + i, w), g);
5553        (v.imageWrapEl.style.transitionDuration = "0ms"),
5554          (v.imageWrapEl.style.transform = `translate3d(${y}px, ${E}px, 0)`),
5555          (p.x = e.clientX),
5556          (p.y = e.clientY),
5557          (b.startX = y),
5558          (b.startY = E),
5559          (b.currentX = y),
5560          (b.currentY = E);
5561      }
5562      function D(e) {
5563        const s = t.zoom,
5564          a = t.params.zoom;
5565        if (!v.slideEl) {
5566          e &&
5567            e.target &&
5568            (v.slideEl = e.target.closest(
5569              `.${t.params.slideClass}, swiper-slide`
5570            )),
5571            v.slideEl ||
5572              (t.params.virtual && t.params.virtual.enabled && t.virtual
5573                ? (v.slideEl = f(
5574                    t.slidesEl,
5575                    `.${t.params.slideActiveClass}`
5576                  )[0])
5577                : (v.slideEl = t.slides[t.activeIndex]));
5578          let s = v.slideEl.querySelector(`.${a.containerClass}`);
5579          s &&
5580            (s = s.querySelectorAll(
5581              "picture, img, svg, canvas, .swiper-zoom-target"
5582            )[0]),
5583            (v.imageEl = s),
5584            (v.imageWrapEl = s
5585              ? E(v.imageEl, `.${a.containerClass}`)[0]
5586              : void 0);
5587        }
5588        if (!v.imageEl || !v.imageWrapEl) return;
5589        let i, r, o, d, c, p, u, m, h, g, y, x, S, T, C, P, L, I;
5590        t.params.cssMode &&
5591          ((t.wrapperEl.style.overflow = "hidden"),
5592          (t.wrapperEl.style.touchAction = "none")),
5593          v.slideEl.classList.add(`${a.zoomedSlideClass}`),
5594          void 0 === b.touchesStart.x && e
5595            ? ((i = e.pageX), (r = e.pageY))
5596            : ((i = b.touchesStart.x), (r = b.touchesStart.y));
5597        const z = l,
5598          A = "number" == typeof e ? e : null;
5599        1 === l &&
5600          A &&
5601          ((i = void 0),
5602          (r = void 0),
5603          (b.touchesStart.x = void 0),
5604          (b.touchesStart.y = void 0));
5605        const $ = M();
5606        (s.scale = A || $),
5607          (l = A || $),
5608          !e || (1 === l && A)
5609            ? ((u = 0), (m = 0))
5610            : ((L = v.slideEl.offsetWidth),
5611              (I = v.slideEl.offsetHeight),
5612              (o = w(v.slideEl).left + n.scrollX),
5613              (d = w(v.slideEl).top + n.scrollY),
5614              (c = o + L / 2 - i),
5615              (p = d + I / 2 - r),
5616              (h = v.imageEl.offsetWidth || v.imageEl.clientWidth),
5617              (g = v.imageEl.offsetHeight || v.imageEl.clientHeight),
5618              (y = h * s.scale),
5619              (x = g * s.scale),
5620              (S = Math.min(L / 2 - y / 2, 0)),
5621              (T = Math.min(I / 2 - x / 2, 0)),
5622              (C = -S),
5623              (P = -T),
5624              z > 0 &&
5625              A &&
5626              "number" == typeof b.currentX &&
5627              "number" == typeof b.currentY
5628                ? ((u = (b.currentX * s.scale) / z),
5629                  (m = (b.currentY * s.scale) / z))
5630                : ((u = c * s.scale), (m = p * s.scale)),
5631              u < S && (u = S),
5632              u > C && (u = C),
5633              m < T && (m = T),
5634              m > P && (m = P)),
5635          A && 1 === s.scale && ((v.originX = 0), (v.originY = 0)),
5636          (b.currentX = u),
5637          (b.currentY = m),
5638          (v.imageWrapEl.style.transitionDuration = "300ms"),
5639          (v.imageWrapEl.style.transform = `translate3d(${u}px, ${m}px,0)`),
5640          (v.imageEl.style.transitionDuration = "300ms"),
5641          (v.imageEl.style.transform = `translate3d(0,0,0) scale(${s.scale})`);
5642      }
5643      function G() {
5644        const e = t.zoom,
5645          s = t.params.zoom;
5646        if (!v.slideEl) {
5647          t.params.virtual && t.params.virtual.enabled && t.virtual
5648            ? (v.slideEl = f(t.slidesEl, `.${t.params.slideActiveClass}`)[0])
5649            : (v.slideEl = t.slides[t.activeIndex]);
5650          let e = v.slideEl.querySelector(`.${s.containerClass}`);
5651          e &&
5652            (e = e.querySelectorAll(
5653              "picture, img, svg, canvas, .swiper-zoom-target"
5654            )[0]),
5655            (v.imageEl = e),
5656            (v.imageWrapEl = e
5657              ? E(v.imageEl, `.${s.containerClass}`)[0]
5658              : void 0);
5659        }
5660        v.imageEl &&
5661          v.imageWrapEl &&
5662          (t.params.cssMode &&
5663            ((t.wrapperEl.style.overflow = ""),
5664            (t.wrapperEl.style.touchAction = "")),
5665          (e.scale = 1),
5666          (l = 1),
5667          (b.currentX = void 0),
5668          (b.currentY = void 0),
5669          (b.touchesStart.x = void 0),
5670          (b.touchesStart.y = void 0),
5671          (v.imageWrapEl.style.transitionDuration = "300ms"),
5672          (v.imageWrapEl.style.transform = "translate3d(0,0,0)"),
5673          (v.imageEl.style.transitionDuration = "300ms"),
5674          (v.imageEl.style.transform = "translate3d(0,0,0) scale(1)"),
5675          v.slideEl.classList.remove(`${s.zoomedSlideClass}`),
5676          (v.slideEl = void 0),
5677          (v.originX = 0),
5678          (v.originY = 0),
5679          t.params.zoom.panOnMouseMove &&
5680            ((p = { x: 0, y: 0 }),
5681            c && ((c = !1), (b.startX = 0), (b.startY = 0))));
5682      }
5683      function X(e) {
5684        const s = t.zoom;
5685        s.scale && 1 !== s.scale ? G() : D(e);
5686      }
5687      function Y() {
5688        return {
5689          passiveListener: !!t.params.passiveListeners && {
5690            passive: !0,
5691            capture: !1,
5692          },
5693          activeListenerWithCapture: !t.params.passiveListeners || {
5694            passive: !1,
5695            capture: !0,
5696          },
5697        };
5698      }
5699      function B() {
5700        const e = t.zoom;
5701        if (e.enabled) return;
5702        e.enabled = !0;
5703        const { passiveListener: s, activeListenerWithCapture: a } = Y();
5704        t.wrapperEl.addEventListener("pointerdown", L, s),
5705          t.wrapperEl.addEventListener("pointermove", I, a),
5706          ["pointerup", "pointercancel", "pointerout"].forEach((e) => {
5707            t.wrapperEl.addEventListener(e, z, s);
5708          }),
5709          t.wrapperEl.addEventListener("pointermove", $, a);
5710      }
5711      function H() {
5712        const e = t.zoom;
5713        if (!e.enabled) return;
5714        e.enabled = !1;
5715        const { passiveListener: s, activeListenerWithCapture: a } = Y();
5716        t.wrapperEl.removeEventListener("pointerdown", L, s),
5717          t.wrapperEl.removeEventListener("pointermove", I, a),
5718          ["pointerup", "pointercancel", "pointerout"].forEach((e) => {
5719            t.wrapperEl.removeEventListener(e, z, s);
5720          }),
5721          t.wrapperEl.removeEventListener("pointermove", $, a);
5722      }
5723      Object.defineProperty(t.zoom, "scale", {
5724        get: () => S,
5725        set(e) {
5726          if (S !== e) {
5727            const t = v.imageEl,
5728              s = v.slideEl;
5729            i("zoomChange", e, t, s);
5730          }
5731          S = e;
5732        },
5733      }),
5734        a("init", () => {
5735          t.params.zoom.enabled && B();
5736        }),
5737        a("destroy", () => {
5738          H();
5739        }),
5740        a("touchStart", (e, s) => {
5741          t.zoom.enabled &&
5742            (function (e) {
5743              const s = t.device;
5744              if (!v.imageEl) return;
5745              if (b.isTouched) return;
5746              s.android && e.cancelable && e.preventDefault(),
5747                (b.isTouched = !0);
5748              const a = g.length > 0 ? g[0] : e;
5749              (b.touchesStart.x = a.pageX), (b.touchesStart.y = a.pageY);
5750            })(s);
5751        }),
5752        a("touchEnd", (e, s) => {
5753          t.zoom.enabled &&
5754            (function () {
5755              const e = t.zoom;
5756              if (((g.length = 0), !v.imageEl)) return;
5757              if (!b.isTouched || !b.isMoved)
5758                return (b.isTouched = !1), void (b.isMoved = !1);
5759              (b.isTouched = !1), (b.isMoved = !1);
5760              let s = 300,
5761                a = 300;
5762              const i = y.x * s,
5763                r = b.currentX + i,
5764                n = y.y * a,
5765                l = b.currentY + n;
5766              0 !== y.x && (s = Math.abs((r - b.currentX) / y.x)),
5767                0 !== y.y && (a = Math.abs((l - b.currentY) / y.y));
5768              const o = Math.max(s, a);
5769              (b.currentX = r), (b.currentY = l);
5770              const d = b.width * e.scale,
5771                c = b.height * e.scale;
5772              (b.minX = Math.min(v.slideWidth / 2 - d / 2, 0)),
5773                (b.maxX = -b.minX),
5774                (b.minY = Math.min(v.slideHeight / 2 - c / 2, 0)),
5775                (b.maxY = -b.minY),
5776                (b.currentX = Math.max(Math.min(b.currentX, b.maxX), b.minX)),
5777                (b.currentY = Math.max(Math.min(b.currentY, b.maxY), b.minY)),
5778                (v.imageWrapEl.style.transitionDuration = `${o}ms`),
5779                (v.imageWrapEl.style.transform = `translate3d(${b.currentX}px, ${b.currentY}px,0)`);
5780            })();
5781        }),
5782        a("doubleTap", (e, s) => {
5783          !t.animating &&
5784            t.params.zoom.enabled &&
5785            t.zoom.enabled &&
5786            t.params.zoom.toggle &&
5787            X(s);
5788        }),
5789        a("transitionEnd", () => {
5790          t.zoom.enabled && t.params.zoom.enabled && k();
5791        }),
5792        a("slideChange", () => {
5793          t.zoom.enabled && t.params.zoom.enabled && t.params.cssMode && k();
5794        }),
5795        Object.assign(t.zoom, {
5796          enable: B,
5797          disable: H,
5798          in: D,
5799          out: G,
5800          toggle: X,
5801        });
5802    },
5803    function (e) {
5804      let { swiper: t, extendParams: s, on: a } = e;
5805      function i(e, t) {
5806        const s = (function () {
5807          let e, t, s;
5808          return (a, i) => {
5809            for (t = -1, e = a.length; e - t > 1; )
5810              (s = (e + t) >> 1), a[s] <= i ? (t = s) : (e = s);
5811            return e;
5812          };
5813        })();
5814        let a, i;
5815        return (
5816          (this.x = e),
5817          (this.y = t),
5818          (this.lastIndex = e.length - 1),
5819          (this.interpolate = function (e) {
5820            return e
5821              ? ((i = s(this.x, e)),
5822                (a = i - 1),
5823                ((e - this.x[a]) * (this.y[i] - this.y[a])) /
5824                  (this.x[i] - this.x[a]) +
5825                  this.y[a])
5826              : 0;
5827          }),
5828          this
5829        );
5830      }
5831      function r() {
5832        t.controller.control &&
5833          t.controller.spline &&
5834          ((t.controller.spline = void 0), delete t.controller.spline);
5835      }
5836      s({ controller: { control: void 0, inverse: !1, by: "slide" } }),
5837        (t.controller = { control: void 0 }),
5838        a("beforeInit", () => {
5839          if (
5840            "undefined" != typeof window &&
5841            ("string" == typeof t.params.controller.control ||
5842              t.params.controller.control instanceof HTMLElement)
5843          ) {
5844            ("string" == typeof t.params.controller.control
5845              ? [...document.querySelectorAll(t.params.controller.control)]
5846              : [t.params.controller.control]
5847            ).forEach((e) => {
5848              if (
5849                (t.controller.control || (t.controller.control = []),
5850                e && e.swiper)
5851              )
5852                t.controller.control.push(e.swiper);
5853              else if (e) {
5854                const s = `${t.params.eventsPrefix}init`,
5855                  a = (i) => {
5856                    t.controller.control.push(i.detail[0]),
5857                      t.update(),
5858                      e.removeEventListener(s, a);
5859                  };
5860                e.addEventListener(s, a);
5861              }
5862            });
5863          } else t.controller.control = t.params.controller.control;
5864        }),
5865        a("update", () => {
5866          r();
5867        }),
5868        a("resize", () => {
5869          r();
5870        }),
5871        a("observerUpdate", () => {
5872          r();
5873        }),
5874        a("setTranslate", (e, s, a) => {
5875          t.controller.control &&
5876            !t.controller.control.destroyed &&
5877            t.controller.setTranslate(s, a);
5878        }),
5879        a("setTransition", (e, s, a) => {
5880          t.controller.control &&
5881            !t.controller.control.destroyed &&
5882            t.controller.setTransition(s, a);
5883        }),
5884        Object.assign(t.controller, {
5885          setTranslate: function (e, s) {
5886            const a = t.controller.control;
5887            let r, n;
5888            const l = t.constructor;
5889            function o(e) {
5890              if (e.destroyed) return;
5891              const s = t.rtlTranslate ? -t.translate : t.translate;
5892              "slide" === t.params.controller.by &&
5893                (!(function (e) {
5894                  t.controller.spline = t.params.loop
5895                    ? new i(t.slidesGrid, e.slidesGrid)
5896                    : new i(t.snapGrid, e.snapGrid);
5897                })(e),
5898                (n = -t.controller.spline.interpolate(-s))),
5899                (n && "container" !== t.params.controller.by) ||
5900                  ((r =
5901                    (e.maxTranslate() - e.minTranslate()) /
5902                    (t.maxTranslate() - t.minTranslate())),
5903                  (!Number.isNaN(r) && Number.isFinite(r)) || (r = 1),
5904                  (n = (s - t.minTranslate()) * r + e.minTranslate())),
5905                t.params.controller.inverse && (n = e.maxTranslate() - n),
5906                e.updateProgress(n),
5907                e.setTranslate(n, t),
5908                e.updateActiveIndex(),
5909                e.updateSlidesClasses();
5910            }
5911            if (Array.isArray(a))
5912              for (let e = 0; e < a.length; e += 1)
5913                a[e] !== s && a[e] instanceof l && o(a[e]);
5914            else a instanceof l && s !== a && o(a);
5915          },
5916          setTransition: function (e, s) {
5917            const a = t.constructor,
5918              i = t.controller.control;
5919            let r;
5920            function n(s) {
5921              s.destroyed ||
5922                (s.setTransition(e, t),
5923                0 !== e &&
5924                  (s.transitionStart(),
5925                  s.params.autoHeight &&
5926                    l(() => {
5927                      s.updateAutoHeight();
5928                    }),
5929                  x(s.wrapperEl, () => {
5930                    i && s.transitionEnd();
5931                  })));
5932            }
5933            if (Array.isArray(i))
5934              for (r = 0; r < i.length; r += 1)
5935                i[r] !== s && i[r] instanceof a && n(i[r]);
5936            else i instanceof a && s !== i && n(i);
5937          },
5938        });
5939    },
5940    function (e) {
5941      let { swiper: t, extendParams: s, on: i } = e;
5942      s({
5943        a11y: {
5944          enabled: !0,
5945          notificationClass: "swiper-notification",
5946          prevSlideMessage: "Previous slide",
5947          nextSlideMessage: "Next slide",
5948          firstSlideMessage: "This is the first slide",
5949          lastSlideMessage: "This is the last slide",
5950          paginationBulletMessage: "Go to slide {{index}}",
5951          slideLabelMessage: "{{index}} / {{slidesLength}}",
5952          containerMessage: null,
5953          containerRoleDescriptionMessage: null,
5954          containerRole: null,
5955          itemRoleDescriptionMessage: null,
5956          slideRole: "group",
5957          id: null,
5958          scrollOnFocus: !0,
5959        },
5960      }),
5961        (t.a11y = { clicked: !1 });
5962      let r,
5963        n,
5964        l = null,
5965        o = new Date().getTime();
5966      function d(e) {
5967        const t = l;
5968        0 !== t.length && C(t, e);
5969      }
5970      function c(e) {
5971        (e = T(e)).forEach((e) => {
5972          e.setAttribute("tabIndex", "0");
5973        });
5974      }
5975      function p(e) {
5976        (e = T(e)).forEach((e) => {
5977          e.setAttribute("tabIndex", "-1");
5978        });
5979      }
5980      function u(e, t) {
5981        (e = T(e)).forEach((e) => {
5982          e.setAttribute("role", t);
5983        });
5984      }
5985      function m(e, t) {
5986        (e = T(e)).forEach((e) => {
5987          e.setAttribute("aria-roledescription", t);
5988        });
5989      }
5990      function h(e, t) {
5991        (e = T(e)).forEach((e) => {
5992          e.setAttribute("aria-label", t);
5993        });
5994      }
5995      function f(e) {
5996        (e = T(e)).forEach((e) => {
5997          e.setAttribute("aria-disabled", !0);
5998        });
5999      }
6000      function g(e) {
6001        (e = T(e)).forEach((e) => {
6002          e.setAttribute("aria-disabled", !1);
6003        });
6004      }
6005      function w(e) {
6006        if (13 !== e.keyCode && 32 !== e.keyCode) return;
6007        const s = t.params.a11y,
6008          a = e.target;
6009        if (
6010          !t.pagination ||
6011          !t.pagination.el ||
6012          (a !== t.pagination.el && !t.pagination.el.contains(e.target)) ||
6013          e.target.matches(le(t.params.pagination.bulletClass))
6014        ) {
6015          if (t.navigation && t.navigation.prevEl && t.navigation.nextEl) {
6016            const e = T(t.navigation.prevEl);
6017            T(t.navigation.nextEl).includes(a) &&
6018              ((t.isEnd && !t.params.loop) || t.slideNext(),
6019              t.isEnd ? d(s.lastSlideMessage) : d(s.nextSlideMessage)),
6020              e.includes(a) &&
6021                ((t.isBeginning && !t.params.loop) || t.slidePrev(),
6022                t.isBeginning ? d(s.firstSlideMessage) : d(s.prevSlideMessage));
6023          }
6024          t.pagination &&
6025            a.matches(le(t.params.pagination.bulletClass)) &&
6026            a.click();
6027        }
6028      }
6029      function b() {
6030        return (
6031          t.pagination && t.pagination.bullets && t.pagination.bullets.length
6032        );
6033      }
6034      function E() {
6035        return b() && t.params.pagination.clickable;
6036      }
6037      const x = (e, t, s) => {
6038          c(e),
6039            "BUTTON" !== e.tagName &&
6040              (u(e, "button"), e.addEventListener("keydown", w)),
6041            h(e, s),
6042            (function (e, t) {
6043              (e = T(e)).forEach((e) => {
6044                e.setAttribute("aria-controls", t);
6045              });
6046            })(e, t);
6047        },
6048        S = (e) => {
6049          n && n !== e.target && !n.contains(e.target) && (r = !0),
6050            (t.a11y.clicked = !0);
6051        },
6052        M = () => {
6053          (r = !1),
6054            requestAnimationFrame(() => {
6055              requestAnimationFrame(() => {
6056                t.destroyed || (t.a11y.clicked = !1);
6057              });
6058            });
6059        },
6060        P = (e) => {
6061          o = new Date().getTime();
6062        },
6063        L = (e) => {
6064          if (t.a11y.clicked || !t.params.a11y.scrollOnFocus) return;
6065          if (new Date().getTime() - o < 100) return;
6066          const s = e.target.closest(`.${t.params.slideClass}, swiper-slide`);
6067          if (!s || !t.slides.includes(s)) return;
6068          n = s;
6069          const a = t.slides.indexOf(s) === t.activeIndex,
6070            i =
6071              t.params.watchSlidesProgress &&
6072              t.visibleSlides &&
6073              t.visibleSlides.includes(s);
6074          a ||
6075            i ||
6076            (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) ||
6077            (t.isHorizontal() ? (t.el.scrollLeft = 0) : (t.el.scrollTop = 0),
6078            requestAnimationFrame(() => {
6079              r ||
6080                (t.params.loop
6081                  ? t.slideToLoop(
6082                      t.getSlideIndexWhenGrid(
6083                        parseInt(s.getAttribute("data-swiper-slide-index"))
6084                      ),
6085                      0
6086                    )
6087                  : t.slideTo(t.getSlideIndexWhenGrid(t.slides.indexOf(s)), 0),
6088                (r = !1));
6089            }));
6090        },
6091        I = () => {
6092          const e = t.params.a11y;
6093          e.itemRoleDescriptionMessage &&
6094            m(t.slides, e.itemRoleDescriptionMessage),
6095            e.slideRole && u(t.slides, e.slideRole);
6096          const s = t.slides.length;
6097          e.slideLabelMessage &&
6098            t.slides.forEach((a, i) => {
6099              const r = t.params.loop
6100                ? parseInt(a.getAttribute("data-swiper-slide-index"), 10)
6101                : i;
6102              h(
6103                a,
6104                e.slideLabelMessage
6105                  .replace(/\{\{index\}\}/, r + 1)
6106                  .replace(/\{\{slidesLength\}\}/, s)
6107              );
6108            });
6109        },
6110        z = () => {
6111          const e = t.params.a11y;
6112          t.el.append(l);
6113          const s = t.el;
6114          e.containerRoleDescriptionMessage &&
6115            m(s, e.containerRoleDescriptionMessage),
6116            e.containerMessage && h(s, e.containerMessage),
6117            e.containerRole && u(s, e.containerRole);
6118          const i = t.wrapperEl,
6119            r =
6120              e.id ||
6121              i.getAttribute("id") ||
6122              `swiper-wrapper-${
6123                ((n = 16),
6124                void 0 === n && (n = 16),
6125                "x"
6126                  .repeat(n)
6127                  .replace(/x/g, () =>
6128                    Math.round(16 * Math.random()).toString(16)
6129                  ))
6130              }`;
6131          var n;
6132          const o =
6133            t.params.autoplay && t.params.autoplay.enabled ? "off" : "polite";
6134          var d;
6135          (d = r),
6136            T(i).forEach((e) => {
6137              e.setAttribute("id", d);
6138            }),
6139            (function (e, t) {
6140              (e = T(e)).forEach((e) => {
6141                e.setAttribute("aria-live", t);
6142              });
6143            })(i, o),
6144            I();
6145          let { nextEl: c, prevEl: p } = t.navigation ? t.navigation : {};
6146          if (
6147            ((c = T(c)),
6148            (p = T(p)),
6149            c && c.forEach((t) => x(t, r, e.nextSlideMessage)),
6150            p && p.forEach((t) => x(t, r, e.prevSlideMessage)),
6151            E())
6152          ) {
6153            T(t.pagination.el).forEach((e) => {
6154              e.addEventListener("keydown", w);
6155            });
6156          }
6157          a().addEventListener("visibilitychange", P),
6158            t.el.addEventListener("focus", L, !0),
6159            t.el.addEventListener("focus", L, !0),
6160            t.el.addEventListener("pointerdown", S, !0),
6161            t.el.addEventListener("pointerup", M, !0);
6162        };
6163      i("beforeInit", () => {
6164        (l = v("span", t.params.a11y.notificationClass)),
6165          l.setAttribute("aria-live", "assertive"),
6166          l.setAttribute("aria-atomic", "true");
6167      }),
6168        i("afterInit", () => {
6169          t.params.a11y.enabled && z();
6170        }),
6171        i(
6172          "slidesLengthChange snapGridLengthChange slidesGridLengthChange",
6173          () => {
6174            t.params.a11y.enabled && I();
6175          }
6176        ),
6177        i("fromEdge toEdge afterInit lock unlock", () => {
6178          t.params.a11y.enabled &&
6179            (function () {
6180              if (t.params.loop || t.params.rewind || !t.navigation) return;
6181              const { nextEl: e, prevEl: s } = t.navigation;
6182              s && (t.isBeginning ? (f(s), p(s)) : (g(s), c(s))),
6183                e && (t.isEnd ? (f(e), p(e)) : (g(e), c(e)));
6184            })();
6185        }),
6186        i("paginationUpdate", () => {
6187          t.params.a11y.enabled &&
6188            (function () {
6189              const e = t.params.a11y;
6190              b() &&
6191                t.pagination.bullets.forEach((s) => {
6192                  t.params.pagination.clickable &&
6193                    (c(s),
6194                    t.params.pagination.renderBullet ||
6195                      (u(s, "button"),
6196                      h(
6197                        s,
6198                        e.paginationBulletMessage.replace(
6199                          /\{\{index\}\}/,
6200                          y(s) + 1
6201                        )
6202                      ))),
6203                    s.matches(le(t.params.pagination.bulletActiveClass))
6204                      ? s.setAttribute("aria-current", "true")
6205                      : s.removeAttribute("aria-current");
6206                });
6207            })();
6208        }),
6209        i("destroy", () => {
6210          t.params.a11y.enabled &&
6211            (function () {
6212              l && l.remove();
6213              let { nextEl: e, prevEl: s } = t.navigation ? t.navigation : {};
6214              (e = T(e)),
6215                (s = T(s)),
6216                e && e.forEach((e) => e.removeEventListener("keydown", w)),
6217                s && s.forEach((e) => e.removeEventListener("keydown", w)),
6218                E() &&
6219                  T(t.pagination.el).forEach((e) => {
6220                    e.removeEventListener("keydown", w);
6221                  });
6222              a().removeEventListener("visibilitychange", P),
6223                t.el &&
6224                  "string" != typeof t.el &&
6225                  (t.el.removeEventListener("focus", L, !0),
6226                  t.el.removeEventListener("pointerdown", S, !0),
6227                  t.el.removeEventListener("pointerup", M, !0));
6228            })();
6229        });
6230    },
6231    function (e) {
6232      let { swiper: t, extendParams: s, on: a } = e;
6233      s({
6234        history: {
6235          enabled: !1,
6236          root: "",
6237          replaceState: !1,
6238          key: "slides",
6239          keepQuery: !1,
6240        },
6241      });
6242      let i = !1,
6243        n = {};
6244      const l = (e) =>
6245          e
6246            .toString()
6247            .replace(/\s+/g, "-")
6248            .replace(/[^\w-]+/g, "")
6249            .replace(/--+/g, "-")
6250            .replace(/^-+/, "")
6251            .replace(/-+$/, ""),
6252        o = (e) => {
6253          const t = r();
6254          let s;
6255          s = e ? new URL(e) : t.location;
6256          const a = s.pathname
6257              .slice(1)
6258              .split("/")
6259              .filter((e) => "" !== e),
6260            i = a.length;
6261          return { key: a[i - 2], value: a[i - 1] };
6262        },
6263        d = (e, s) => {
6264          const a = r();
6265          if (!i || !t.params.history.enabled) return;
6266          let n;
6267          n = t.params.url ? new URL(t.params.url) : a.location;
6268          const o =
6269            t.virtual && t.params.virtual.enabled
6270              ? t.slidesEl.querySelector(`[data-swiper-slide-index="${s}"]`)
6271              : t.slides[s];
6272          let d = l(o.getAttribute("data-history"));
6273          if (t.params.history.root.length > 0) {
6274            let s = t.params.history.root;
6275            "/" === s[s.length - 1] && (s = s.slice(0, s.length - 1)),
6276              (d = `${s}/${e ? `${e}/` : ""}${d}`);
6277          } else n.pathname.includes(e) || (d = `${e ? `${e}/` : ""}${d}`);
6278          t.params.history.keepQuery && (d += n.search);
6279          const c = a.history.state;
6280          (c && c.value === d) ||
6281            (t.params.history.replaceState
6282              ? a.history.replaceState({ value: d }, null, d)
6283              : a.history.pushState({ value: d }, null, d));
6284        },
6285        c = (e, s, a) => {
6286          if (s)
6287            for (let i = 0, r = t.slides.length; i < r; i += 1) {
6288              const r = t.slides[i];
6289              if (l(r.getAttribute("data-history")) === s) {
6290                const s = t.getSlideIndex(r);
6291                t.slideTo(s, e, a);
6292              }
6293            }
6294          else t.slideTo(0, e, a);
6295        },
6296        p = () => {
6297          (n = o(t.params.url)), c(t.params.speed, n.value, !1);
6298        };
6299      a("init", () => {
6300        t.params.history.enabled &&
6301          (() => {
6302            const e = r();
6303            if (t.params.history) {
6304              if (!e.history || !e.history.pushState)
6305                return (
6306                  (t.params.history.enabled = !1),
6307                  void (t.params.hashNavigation.enabled = !0)
6308                );
6309              (i = !0),
6310                (n = o(t.params.url)),
6311                n.key || n.value
6312                  ? (c(0, n.value, t.params.runCallbacksOnInit),
6313                    t.params.history.replaceState ||
6314                      e.addEventListener("popstate", p))
6315                  : t.params.history.replaceState ||
6316                    e.addEventListener("popstate", p);
6317            }
6318          })();
6319      }),
6320        a("destroy", () => {
6321          t.params.history.enabled &&
6322            (() => {
6323              const e = r();
6324              t.params.history.replaceState ||
6325                e.removeEventListener("popstate", p);
6326            })();
6327        }),
6328        a("transitionEnd _freeModeNoMomentumRelease", () => {
6329          i && d(t.params.history.key, t.activeIndex);
6330        }),
6331        a("slideChange", () => {
6332          i && t.params.cssMode && d(t.params.history.key, t.activeIndex);
6333        });
6334    },
6335    function (e) {
6336      let { swiper: t, extendParams: s, emit: i, on: n } = e,
6337        l = !1;
6338      const o = a(),
6339        d = r();
6340      s({
6341        hashNavigation: {
6342          enabled: !1,
6343          replaceState: !1,
6344          watchState: !1,
6345          getSlideIndex(e, s) {
6346            if (t.virtual && t.params.virtual.enabled) {
6347              const e = t.slides.find((e) => e.getAttribute("data-hash") === s);
6348              if (!e) return 0;
6349              return parseInt(e.getAttribute("data-swiper-slide-index"), 10);
6350            }
6351            return t.getSlideIndex(
6352              f(
6353                t.slidesEl,
6354                `.${t.params.slideClass}[data-hash="${s}"], swiper-slide[data-hash="${s}"]`
6355              )[0]
6356            );
6357          },
6358        },
6359      });
6360      const c = () => {
6361          i("hashChange");
6362          const e = o.location.hash.replace("#", ""),
6363            s =
6364              t.virtual && t.params.virtual.enabled
6365                ? t.slidesEl.querySelector(
6366                    `[data-swiper-slide-index="${t.activeIndex}"]`
6367                  )
6368                : t.slides[t.activeIndex];
6369          if (e !== (s ? s.getAttribute("data-hash") : "")) {
6370            const s = t.params.hashNavigation.getSlideIndex(t, e);
6371            if (void 0 === s || Number.isNaN(s)) return;
6372            t.slideTo(s);
6373          }
6374        },
6375        p = () => {
6376          if (!l || !t.params.hashNavigation.enabled) return;
6377          const e =
6378              t.virtual && t.params.virtual.enabled
6379                ? t.slidesEl.querySelector(
6380                    `[data-swiper-slide-index="${t.activeIndex}"]`
6381                  )
6382                : t.slides[t.activeIndex],
6383            s = e
6384              ? e.getAttribute("data-hash") || e.getAttribute("data-history")
6385              : "";
6386          t.params.hashNavigation.replaceState &&
6387          d.history &&
6388          d.history.replaceState
6389            ? (d.history.replaceState(null, null, `#${s}` || ""), i("hashSet"))
6390            : ((o.location.hash = s || ""), i("hashSet"));
6391        };
6392      n("init", () => {
6393        t.params.hashNavigation.enabled &&
6394          (() => {
6395            if (
6396              !t.params.hashNavigation.enabled ||
6397              (t.params.history && t.params.history.enabled)
6398            )
6399              return;
6400            l = !0;
6401            const e = o.location.hash.replace("#", "");
6402            if (e) {
6403              const s = 0,
6404                a = t.params.hashNavigation.getSlideIndex(t, e);
6405              t.slideTo(a || 0, s, t.params.runCallbacksOnInit, !0);
6406            }
6407            t.params.hashNavigation.watchState &&
6408              d.addEventListener("hashchange", c);
6409          })();
6410      }),
6411        n("destroy", () => {
6412          t.params.hashNavigation.enabled &&
6413            t.params.hashNavigation.watchState &&
6414            d.removeEventListener("hashchange", c);
6415        }),
6416        n("transitionEnd _freeModeNoMomentumRelease", () => {
6417          l && p();
6418        }),
6419        n("slideChange", () => {
6420          l && t.params.cssMode && p();
6421        });
6422    },
6423    function (e) {
6424      let t,
6425        s,
6426        { swiper: i, extendParams: r, on: n, emit: l, params: o } = e;
6427      (i.autoplay = { running: !1, paused: !1, timeLeft: 0 }),
6428        r({
6429          autoplay: {
6430            enabled: !1,
6431            delay: 3e3,
6432            waitForTransition: !0,
6433            disableOnInteraction: !1,
6434            stopOnLastSlide: !1,
6435            reverseDirection: !1,
6436            pauseOnMouseEnter: !1,
6437          },
6438        });
6439      let d,
6440        c,
6441        p,
6442        u,
6443        m,
6444        h,
6445        f,
6446        g,
6447        v = o && o.autoplay ? o.autoplay.delay : 3e3,
6448        w = o && o.autoplay ? o.autoplay.delay : 3e3,
6449        b = new Date().getTime();
6450      function y(e) {
6451        i &&
6452          !i.destroyed &&
6453          i.wrapperEl &&
6454          e.target === i.wrapperEl &&
6455          (i.wrapperEl.removeEventListener("transitionend", y),
6456          g || (e.detail && e.detail.bySwiperTouchMove) || C());
6457      }
6458      const E = () => {
6459          if (i.destroyed || !i.autoplay.running) return;
6460          i.autoplay.paused ? (c = !0) : c && ((w = d), (c = !1));
6461          const e = i.autoplay.paused ? d : b + w - new Date().getTime();
6462          (i.autoplay.timeLeft = e),
6463            l("autoplayTimeLeft", e, e / v),
6464            (s = requestAnimationFrame(() => {
6465              E();
6466            }));
6467        },
6468        x = (e) => {
6469          if (i.destroyed || !i.autoplay.running) return;
6470          cancelAnimationFrame(s), E();
6471          let a = void 0 === e ? i.params.autoplay.delay : e;
6472          (v = i.params.autoplay.delay), (w = i.params.autoplay.delay);
6473          const r = (() => {
6474            let e;
6475            if (
6476              ((e =
6477                i.virtual && i.params.virtual.enabled
6478                  ? i.slides.find((e) =>
6479                      e.classList.contains("swiper-slide-active")
6480                    )
6481                  : i.slides[i.activeIndex]),
6482              !e)
6483            )
6484              return;
6485            return parseInt(e.getAttribute("data-swiper-autoplay"), 10);
6486          })();
6487          !Number.isNaN(r) &&
6488            r > 0 &&
6489            void 0 === e &&
6490            ((a = r), (v = r), (w = r)),
6491            (d = a);
6492          const n = i.params.speed,
6493            o = () => {
6494              i &&
6495                !i.destroyed &&
6496                (i.params.autoplay.reverseDirection
6497                  ? !i.isBeginning || i.params.loop || i.params.rewind
6498                    ? (i.slidePrev(n, !0, !0), l("autoplay"))
6499                    : i.params.autoplay.stopOnLastSlide ||
6500                      (i.slideTo(i.slides.length - 1, n, !0, !0), l("autoplay"))
6501                  : !i.isEnd || i.params.loop || i.params.rewind
6502                  ? (i.slideNext(n, !0, !0), l("autoplay"))
6503                  : i.params.autoplay.stopOnLastSlide ||
6504                    (i.slideTo(0, n, !0, !0), l("autoplay")),
6505                i.params.cssMode &&
6506                  ((b = new Date().getTime()),
6507                  requestAnimationFrame(() => {
6508                    x();
6509                  })));
6510            };
6511          return (
6512            a > 0
6513              ? (clearTimeout(t),
6514                (t = setTimeout(() => {
6515                  o();
6516                }, a)))
6517              : requestAnimationFrame(() => {
6518                  o();
6519                }),
6520            a
6521          );
6522        },
6523        S = () => {
6524          (b = new Date().getTime()),
6525            (i.autoplay.running = !0),
6526            x(),
6527            l("autoplayStart");
6528        },
6529        T = () => {
6530          (i.autoplay.running = !1),
6531            clearTimeout(t),
6532            cancelAnimationFrame(s),
6533            l("autoplayStop");
6534        },
6535        M = (e, s) => {
6536          if (i.destroyed || !i.autoplay.running) return;
6537          clearTimeout(t), e || (f = !0);
6538          const a = () => {
6539            l("autoplayPause"),
6540              i.params.autoplay.waitForTransition
6541                ? i.wrapperEl.addEventListener("transitionend", y)
6542                : C();
6543          };
6544          if (((i.autoplay.paused = !0), s))
6545            return h && (d = i.params.autoplay.delay), (h = !1), void a();
6546          const r = d || i.params.autoplay.delay;
6547          (d = r - (new Date().getTime() - b)),
6548            (i.isEnd && d < 0 && !i.params.loop) || (d < 0 && (d = 0), a());
6549        },
6550        C = () => {
6551          (i.isEnd && d < 0 && !i.params.loop) ||
6552            i.destroyed ||
6553            !i.autoplay.running ||
6554            ((b = new Date().getTime()),
6555            f ? ((f = !1), x(d)) : x(),
6556            (i.autoplay.paused = !1),
6557            l("autoplayResume"));
6558        },
6559        P = () => {
6560          if (i.destroyed || !i.autoplay.running) return;
6561          const e = a();
6562          "hidden" === e.visibilityState && ((f = !0), M(!0)),
6563            "visible" === e.visibilityState && C();
6564        },
6565        L = (e) => {
6566          "mouse" === e.pointerType &&
6567            ((f = !0), (g = !0), i.animating || i.autoplay.paused || M(!0));
6568        },
6569        I = (e) => {
6570          "mouse" === e.pointerType && ((g = !1), i.autoplay.paused && C());
6571        };
6572      n("init", () => {
6573        i.params.autoplay.enabled &&
6574          (i.params.autoplay.pauseOnMouseEnter &&
6575            (i.el.addEventListener("pointerenter", L),
6576            i.el.addEventListener("pointerleave", I)),
6577          a().addEventListener("visibilitychange", P),
6578          S());
6579      }),
6580        n("destroy", () => {
6581          i.el &&
6582            "string" != typeof i.el &&
6583            (i.el.removeEventListener("pointerenter", L),
6584            i.el.removeEventListener("pointerleave", I)),
6585            a().removeEventListener("visibilitychange", P),
6586            i.autoplay.running && T();
6587        }),
6588        n("_freeModeStaticRelease", () => {
6589          (u || f) && C();
6590        }),
6591        n("_freeModeNoMomentumRelease", () => {
6592          i.params.autoplay.disableOnInteraction ? T() : M(!0, !0);
6593        }),
6594        n("beforeTransitionStart", (e, t, s) => {
6595          !i.destroyed &&
6596            i.autoplay.running &&
6597            (s || !i.params.autoplay.disableOnInteraction ? M(!0, !0) : T());
6598        }),
6599        n("sliderFirstMove", () => {
6600          !i.destroyed &&
6601            i.autoplay.running &&
6602            (i.params.autoplay.disableOnInteraction
6603              ? T()
6604              : ((p = !0),
6605                (u = !1),
6606                (f = !1),
6607                (m = setTimeout(() => {
6608                  (f = !0), (u = !0), M(!0);
6609                }, 200))));
6610        }),
6611        n("touchEnd", () => {
6612          if (!i.destroyed && i.autoplay.running && p) {
6613            if (
6614              (clearTimeout(m),
6615              clearTimeout(t),
6616              i.params.autoplay.disableOnInteraction)
6617            )
6618              return (u = !1), void (p = !1);
6619            u && i.params.cssMode && C(), (u = !1), (p = !1);
6620          }
6621        }),
6622        n("slideChange", () => {
6623          !i.destroyed && i.autoplay.running && (h = !0);
6624        }),
6625        Object.assign(i.autoplay, { start: S, stop: T, pause: M, resume: C });
6626    },
6627    function (e) {
6628      let { swiper: t, extendParams: s, on: i } = e;
6629      s({
6630        thumbs: {
6631          swiper: null,
6632          multipleActiveThumbs: !0,
6633          autoScrollOffset: 0,
6634          slideThumbActiveClass: "swiper-slide-thumb-active",
6635          thumbsContainerClass: "swiper-thumbs",
6636        },
6637      });
6638      let r = !1,
6639        n = !1;
6640      function l() {
6641        const e = t.thumbs.swiper;
6642        if (!e || e.destroyed) return;
6643        const s = e.clickedIndex,
6644          a = e.clickedSlide;
6645        if (a && a.classList.contains(t.params.thumbs.slideThumbActiveClass))
6646          return;
6647        if (null == s) return;
6648        let i;
6649        (i = e.params.loop
6650          ? parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"), 10)
6651          : s),
6652          t.params.loop ? t.slideToLoop(i) : t.slideTo(i);
6653      }
6654      function o() {
6655        const { thumbs: e } = t.params;
6656        if (r) return !1;
6657        r = !0;
6658        const s = t.constructor;
6659        if (e.swiper instanceof s) {
6660          if (e.swiper.destroyed) return (r = !1), !1;
6661          (t.thumbs.swiper = e.swiper),
6662            Object.assign(t.thumbs.swiper.originalParams, {
6663              watchSlidesProgress: !0,
6664              slideToClickedSlide: !1,
6665            }),
6666            Object.assign(t.thumbs.swiper.params, {
6667              watchSlidesProgress: !0,
6668              slideToClickedSlide: !1,
6669            }),
6670            t.thumbs.swiper.update();
6671        } else if (c(e.swiper)) {
6672          const a = Object.assign({}, e.swiper);
6673          Object.assign(a, {
6674            watchSlidesProgress: !0,
6675            slideToClickedSlide: !1,
6676          }),
6677            (t.thumbs.swiper = new s(a)),
6678            (n = !0);
6679        }
6680        return (
6681          t.thumbs.swiper.el.classList.add(
6682            t.params.thumbs.thumbsContainerClass
6683          ),
6684          t.thumbs.swiper.on("tap", l),
6685          !0
6686        );
6687      }
6688      function d(e) {
6689        const s = t.thumbs.swiper;
6690        if (!s || s.destroyed) return;
6691        const a =
6692          "auto" === s.params.slidesPerView
6693            ? s.slidesPerViewDynamic()
6694            : s.params.slidesPerView;
6695        let i = 1;
6696        const r = t.params.thumbs.slideThumbActiveClass;
6697        if (
6698          (t.params.slidesPerView > 1 &&
6699            !t.params.centeredSlides &&
6700            (i = t.params.slidesPerView),
6701          t.params.thumbs.multipleActiveThumbs || (i = 1),
6702          (i = Math.floor(i)),
6703          s.slides.forEach((e) => e.classList.remove(r)),
6704          s.params.loop || (s.params.virtual && s.params.virtual.enabled))
6705        )
6706          for (let e = 0; e < i; e += 1)
6707            f(
6708              s.slidesEl,
6709              `[data-swiper-slide-index="${t.realIndex + e}"]`
6710            ).forEach((e) => {
6711              e.classList.add(r);
6712            });
6713        else
6714          for (let e = 0; e < i; e += 1)
6715            s.slides[t.realIndex + e] &&
6716              s.slides[t.realIndex + e].classList.add(r);
6717        const n = t.params.thumbs.autoScrollOffset,
6718          l = n && !s.params.loop;
6719        if (t.realIndex !== s.realIndex || l) {
6720          const i = s.activeIndex;
6721          let r, o;
6722          if (s.params.loop) {
6723            const e = s.slides.find(
6724              (e) =>
6725                e.getAttribute("data-swiper-slide-index") === `${t.realIndex}`
6726            );
6727            (r = s.slides.indexOf(e)),
6728              (o = t.activeIndex > t.previousIndex ? "next" : "prev");
6729          } else (r = t.realIndex), (o = r > t.previousIndex ? "next" : "prev");
6730          l && (r += "next" === o ? n : -1 * n),
6731            s.visibleSlidesIndexes &&
6732              s.visibleSlidesIndexes.indexOf(r) < 0 &&
6733              (s.params.centeredSlides
6734                ? (r =
6735                    r > i
6736                      ? r - Math.floor(a / 2) + 1
6737                      : r + Math.floor(a / 2) - 1)
6738                : r > i && s.params.slidesPerGroup,
6739              s.slideTo(r, e ? 0 : void 0));
6740        }
6741      }
6742      (t.thumbs = { swiper: null }),
6743        i("beforeInit", () => {
6744          const { thumbs: e } = t.params;
6745          if (e && e.swiper)
6746            if (
6747              "string" == typeof e.swiper ||
6748              e.swiper instanceof HTMLElement
6749            ) {
6750              const s = a(),
6751                i = () => {
6752                  const a =
6753                    "string" == typeof e.swiper
6754                      ? s.querySelector(e.swiper)
6755                      : e.swiper;
6756                  if (a && a.swiper) (e.swiper = a.swiper), o(), d(!0);
6757                  else if (a) {
6758                    const s = `${t.params.eventsPrefix}init`,
6759                      i = (r) => {
6760                        (e.swiper = r.detail[0]),
6761                          a.removeEventListener(s, i),
6762                          o(),
6763                          d(!0),
6764                          e.swiper.update(),
6765                          t.update();
6766                      };
6767                    a.addEventListener(s, i);
6768                  }
6769                  return a;
6770                },
6771                r = () => {
6772                  if (t.destroyed) return;
6773                  i() || requestAnimationFrame(r);
6774                };
6775              requestAnimationFrame(r);
6776            } else o(), d(!0);
6777        }),
6778        i("slideChange update resize observerUpdate", () => {
6779          d();
6780        }),
6781        i("setTransition", (e, s) => {
6782          const a = t.thumbs.swiper;
6783          a && !a.destroyed && a.setTransition(s);
6784        }),
6785        i("beforeDestroy", () => {
6786          const e = t.thumbs.swiper;
6787          e && !e.destroyed && n && e.destroy();
6788        }),
6789        Object.assign(t.thumbs, { init: o, update: d });
6790    },
6791    function (e) {
6792      let { swiper: t, extendParams: s, emit: a, once: i } = e;
6793      s({
6794        freeMode: {
6795          enabled: !1,
6796          momentum: !0,
6797          momentumRatio: 1,
6798          momentumBounce: !0,
6799          momentumBounceRatio: 1,
6800          momentumVelocityRatio: 1,
6801          sticky: !1,
6802          minimumVelocity: 0.02,
6803        },
6804      }),
6805        Object.assign(t, {
6806          freeMode: {
6807            onTouchStart: function () {
6808              if (t.params.cssMode) return;
6809              const e = t.getTranslate();
6810              t.setTranslate(e),
6811                t.setTransition(0),
6812                (t.touchEventsData.velocities.length = 0),
6813                t.freeMode.onTouchEnd({
6814                  currentPos: t.rtl ? t.translate : -t.translate,
6815                });
6816            },
6817            onTouchMove: function () {
6818              if (t.params.cssMode) return;
6819              const { touchEventsData: e, touches: s } = t;
6820              0 === e.velocities.length &&
6821                e.velocities.push({
6822                  position: s[t.isHorizontal() ? "startX" : "startY"],
6823                  time: e.touchStartTime,
6824                }),
6825                e.velocities.push({
6826                  position: s[t.isHorizontal() ? "currentX" : "currentY"],
6827                  time: o(),
6828                });
6829            },
6830            onTouchEnd: function (e) {
6831              let { currentPos: s } = e;
6832              if (t.params.cssMode) return;
6833              const {
6834                  params: r,
6835                  wrapperEl: n,
6836                  rtlTranslate: l,
6837                  snapGrid: d,
6838                  touchEventsData: c,
6839                } = t,
6840                p = o() - c.touchStartTime;
6841              if (s < -t.minTranslate()) t.slideTo(t.activeIndex);
6842              else if (s > -t.maxTranslate())
6843                t.slides.length < d.length
6844                  ? t.slideTo(d.length - 1)
6845                  : t.slideTo(t.slides.length - 1);
6846              else {
6847                if (r.freeMode.momentum) {
6848                  if (c.velocities.length > 1) {
6849                    const e = c.velocities.pop(),
6850                      s = c.velocities.pop(),
6851                      a = e.position - s.position,
6852                      i = e.time - s.time;
6853                    (t.velocity = a / i),
6854                      (t.velocity /= 2),
6855                      Math.abs(t.velocity) < r.freeMode.minimumVelocity &&
6856                        (t.velocity = 0),
6857                      (i > 150 || o() - e.time > 300) && (t.velocity = 0);
6858                  } else t.velocity = 0;
6859                  (t.velocity *= r.freeMode.momentumVelocityRatio),
6860                    (c.velocities.length = 0);
6861                  let e = 1e3 * r.freeMode.momentumRatio;
6862                  const s = t.velocity * e;
6863                  let p = t.translate + s;
6864                  l && (p = -p);
6865                  let u,
6866                    m = !1;
6867                  const h =
6868                    20 * Math.abs(t.velocity) * r.freeMode.momentumBounceRatio;
6869                  let f;
6870                  if (p < t.maxTranslate())
6871                    r.freeMode.momentumBounce
6872                      ? (p + t.maxTranslate() < -h &&
6873                          (p = t.maxTranslate() - h),
6874                        (u = t.maxTranslate()),
6875                        (m = !0),
6876                        (c.allowMomentumBounce = !0))
6877                      : (p = t.maxTranslate()),
6878                      r.loop && r.centeredSlides && (f = !0);
6879                  else if (p > t.minTranslate())
6880                    r.freeMode.momentumBounce
6881                      ? (p - t.minTranslate() > h && (p = t.minTranslate() + h),
6882                        (u = t.minTranslate()),
6883                        (m = !0),
6884                        (c.allowMomentumBounce = !0))
6885                      : (p = t.minTranslate()),
6886                      r.loop && r.centeredSlides && (f = !0);
6887                  else if (r.freeMode.sticky) {
6888                    let e;
6889                    for (let t = 0; t < d.length; t += 1)
6890                      if (d[t] > -p) {
6891                        e = t;
6892                        break;
6893                      }
6894                    (p =
6895                      Math.abs(d[e] - p) < Math.abs(d[e - 1] - p) ||
6896                      "next" === t.swipeDirection
6897                        ? d[e]
6898                        : d[e - 1]),
6899                      (p = -p);
6900                  }
6901                  if (
6902                    (f &&
6903                      i("transitionEnd", () => {
6904                        t.loopFix();
6905                      }),
6906                    0 !== t.velocity)
6907                  ) {
6908                    if (
6909                      ((e = l
6910                        ? Math.abs((-p - t.translate) / t.velocity)
6911                        : Math.abs((p - t.translate) / t.velocity)),
6912                      r.freeMode.sticky)
6913                    ) {
6914                      const s = Math.abs((l ? -p : p) - t.translate),
6915                        a = t.slidesSizesGrid[t.activeIndex];
6916                      e =
6917                        s < a
6918                          ? r.speed
6919                          : s < 2 * a
6920                          ? 1.5 * r.speed
6921                          : 2.5 * r.speed;
6922                    }
6923                  } else if (r.freeMode.sticky) return void t.slideToClosest();
6924                  r.freeMode.momentumBounce && m
6925                    ? (t.updateProgress(u),
6926                      t.setTransition(e),
6927                      t.setTranslate(p),
6928                      t.transitionStart(!0, t.swipeDirection),
6929                      (t.animating = !0),
6930                      x(n, () => {
6931                        t &&
6932                          !t.destroyed &&
6933                          c.allowMomentumBounce &&
6934                          (a("momentumBounce"),
6935                          t.setTransition(r.speed),
6936                          setTimeout(() => {
6937                            t.setTranslate(u),
6938                              x(n, () => {
6939                                t && !t.destroyed && t.transitionEnd();
6940                              });
6941                          }, 0));
6942                      }))
6943                    : t.velocity
6944                    ? (a("_freeModeNoMomentumRelease"),
6945                      t.updateProgress(p),
6946                      t.setTransition(e),
6947                      t.setTranslate(p),
6948                      t.transitionStart(!0, t.swipeDirection),
6949                      t.animating ||
6950                        ((t.animating = !0),
6951                        x(n, () => {
6952                          t && !t.destroyed && t.transitionEnd();
6953                        })))
6954                    : t.updateProgress(p),
6955                    t.updateActiveIndex(),
6956                    t.updateSlidesClasses();
6957                } else {
6958                  if (r.freeMode.sticky) return void t.slideToClosest();
6959                  r.freeMode && a("_freeModeNoMomentumRelease");
6960                }
6961                (!r.freeMode.momentum || p >= r.longSwipesMs) &&
6962                  (a("_freeModeStaticRelease"),
6963                  t.updateProgress(),
6964                  t.updateActiveIndex(),
6965                  t.updateSlidesClasses());
6966              }
6967            },
6968          },
6969        });
6970    },
6971    function (e) {
6972      let t,
6973        s,
6974        a,
6975        i,
6976        { swiper: r, extendParams: n, on: l } = e;
6977      n({ grid: { rows: 1, fill: "column" } });
6978      const o = () => {
6979        let e = r.params.spaceBetween;
6980        return (
6981          "string" == typeof e && e.indexOf("%") >= 0
6982            ? (e = (parseFloat(e.replace("%", "")) / 100) * r.size)
6983            : "string" == typeof e && (e = parseFloat(e)),
6984          e
6985        );
6986      };
6987      l("init", () => {
6988        i = r.params.grid && r.params.grid.rows > 1;
6989      }),
6990        l("update", () => {
6991          const { params: e, el: t } = r,
6992            s = e.grid && e.grid.rows > 1;
6993          i && !s
6994            ? (t.classList.remove(
6995                `${e.containerModifierClass}grid`,
6996                `${e.containerModifierClass}grid-column`
6997              ),
6998              (a = 1),
6999              r.emitContainerClasses())
7000            : !i &&
7001              s &&
7002              (t.classList.add(`${e.containerModifierClass}grid`),
7003              "column" === e.grid.fill &&
7004                t.classList.add(`${e.containerModifierClass}grid-column`),
7005              r.emitContainerClasses()),
7006            (i = s);
7007        }),
7008        (r.grid = {
7009          initSlides: (e) => {
7010            const { slidesPerView: i } = r.params,
7011              { rows: n, fill: l } = r.params.grid,
7012              o =
7013                r.virtual && r.params.virtual.enabled
7014                  ? r.virtual.slides.length
7015                  : e.length;
7016            (a = Math.floor(o / n)),
7017              (t = Math.floor(o / n) === o / n ? o : Math.ceil(o / n) * 
7017n),
7018              "auto" !== i && "row" === l && (t = Math.max(t, i * n)),
7019              (s = t / n);
7020          },
7021          unsetSlides: () => {
7022            r.slides &&
7023              r.slides.forEach((e) => {
7024                e.swiperSlideGridSet &&
7025                  ((e.style.height = ""),
7026                  (e.style[r.getDirectionLabel("margin-top")] = ""));
7027              });
7028          },
7029          updateSlide: (e, i, n) => {
7030            const { slidesPerGroup: l } = r.params,
7031              d = o(),
7032              { rows: c, fill: p } = r.params.grid,
7033              u =
7034                r.virtual && r.params.virtual.enabled
7035                  ? r.virtual.slides.length
7036                  : n.length;
7037            let m, h, f;
7038            if ("row" === p && l > 1) {
7039              const s = Math.floor(e / (l * c)),
7040                a = e - c * l * s,
7041                r = 0 === s ? l : Math.min(Math.ceil((u - s * c * l) / c), l);
7042              (f = Math.floor(a / r)),
7043                (h = a - f * r + s * l),
7044                (m = h + (f * t) / c),
7045                (i.style.order = m);
7046            } else
7047              "column" === p
7048                ? ((h = Math.floor(e / c)),
7049                  (f = e - h * c),
7050                  (h > a || (h === a && f === c - 1)) &&
7051                    ((f += 1), f >= c && ((f = 0), (h += 1))))
7052                : ((f = Math.floor(e / s)), (h = e - f * s));
7053            (i.row = f),
7054              (i.column = h),
7055              (i.style.height = `calc((100% - ${(c - 1) * d}px) / ${c})`),
7056              (i.style[r.getDirectionLabel("margin-top")] =
7057                0 !== f ? d && `${d}px` : ""),
7058              (i.swiperSlideGridSet = !0);
7059          },
7060          updateWrapperSize: (e, s) => {
7061            const { centeredSlides: a, roundLengths: i } = r.params,
7062              n = o(),
7063              { rows: l } = r.params.grid;
7064            if (
7065              ((r.virtualSize = (e + n) * t),
7066              (r.virtualSize = Math.ceil(r.virtualSize / l) - n),
7067              r.params.cssMode ||
7068                (r.wrapperEl.style[r.getDirectionLabel("width")] = `${
7069                  r.virtualSize + n
7070                }px`),
7071              a)
7072            ) {
7073              const e = [];
7074              for (let t = 0; t < s.length; t += 1) {
7075                let a = s[t];
7076                i && (a = Math.floor(a)),
7077                  s[t] < r.virtualSize + s[0] && e.push(a);
7078              }
7079              s.splice(0, s.length), s.push(...e);
7080            }
7081          },
7082        });
7083    },
7084    function (e) {
7085      let { swiper: t } = e;
7086      Object.assign(t, {
7087        appendSlide: oe.bind(t),
7088        prependSlide: de.bind(t),
7089        addSlide: ce.bind(t),
7090        removeSlide: pe.bind(t),
7091        removeAllSlides: ue.bind(t),
7092      });
7093    },
7094    function (e) {
7095      let { swiper: t, extendParams: s, on: a } = e;
7096      s({ fadeEffect: { crossFade: !1 } }),
7097        me({
7098          effect: "fade",
7099          swiper: t,
7100          on: a,
7101          setTranslate: () => {
7102            const { slides: e } = t;
7103            t.params.fadeEffect;
7104            for (let s = 0; s < e.length; s += 1) {
7105              const e = t.slides[s];
7106              let a = -e.swiperSlideOffset;
7107              t.params.virtualTranslate || (a -= t.translate);
7108              let i = 0;
7109              t.isHorizontal() || ((i = a), (a = 0));
7110              const r = t.params.fadeEffect.crossFade
7111                  ? Math.max(1 - Math.abs(e.progress), 0)
7112                  : 1 + Math.min(Math.max(e.progress, -1), 0),
7113                n = he(0, e);
7114              (n.style.opacity = r),
7115                (n.style.transform = `translate3d(${a}px, ${i}px, 0px)`);
7116            }
7117          },
7118          setTransition: (e) => {
7119            const s = t.slides.map((e) => h(e));
7120            s.forEach((t) => {
7121              t.style.transitionDuration = `${e}ms`;
7122            }),
7123              fe({
7124                swiper: t,
7125                duration: e,
7126                transformElements: s,
7127                allSlides: !0,
7128              });
7129          },
7130          overwriteParams: () => ({
7131            slidesPerView: 1,
7132            slidesPerGroup: 1,
7133            watchSlidesProgress: !0,
7134            spaceBetween: 0,
7135            virtualTranslate: !t.params.cssMode,
7136          }),
7137        });
7138    },
7139    function (e) {
7140      let { swiper: t, extendParams: s, on: a } = e;
7141      s({
7142        cubeEffect: {
7143          slideShadows: !0,
7144          shadow: !0,
7145          shadowOffset: 20,
7146          shadowScale: 0.94,
7147        },
7148      });
7149      const i = (e, t, s) => {
7150        let a = s
7151            ? e.querySelector(".swiper-slide-shadow-left")
7152            : e.querySelector(".swiper-slide-shadow-top"),
7153          i = s
7154            ? e.querySelector(".swiper-slide-shadow-right")
7155            : e.querySelector(".swiper-slide-shadow-bottom");
7156        a ||
7157          ((a = v(
7158            "div",
7159            (
7160              "swiper-slide-shadow-cube swiper-slide-shadow-" +
7161              (s ? "left" : "top")
7162            ).split(" ")
7163          )),
7164          e.append(a)),
7165          i ||
7166            ((i = v(
7167              "div",
7168              (
7169                "swiper-slide-shadow-cube swiper-slide-shadow-" +
7170                (s ? "right" : "bottom")
7171              ).split(" ")
7172            )),
7173            e.append(i)),
7174          a && (a.style.opacity = Math.max(-t, 0)),
7175          i && (i.style.opacity = Math.max(t, 0));
7176      };
7177      me({
7178        effect: "cube",
7179        swiper: t,
7180        on: a,
7181        setTranslate: () => {
7182          const {
7183              el: e,
7184              wrapperEl: s,
7185              slides: a,
7186              width: r,
7187              height: n,
7188              rtlTranslate: l,
7189              size: o,
7190              browser: d,
7191            } = t,
7192            c = M(t),
7193            p = t.params.cubeEffect,
7194            u = t.isHorizontal(),
7195            m = t.virtual && t.params.virtual.enabled;
7196          let h,
7197            f = 0;
7198          p.shadow &&
7199            (u
7200              ? ((h = t.wrapperEl.querySelector(".swiper-cube-shadow")),
7201                h ||
7202                  ((h = v("div", "swiper-cube-shadow")), t.wrapperEl.append(h)),
7203                (h.style.height = `${r}px`))
7204              : ((h = e.querySelector(".swiper-cube-shadow")),
7205                h || ((h = v("div", "swiper-cube-shadow")), e.append(h))));
7206          for (let e = 0; e < a.length; e += 1) {
7207            const t = a[e];
7208            let s = e;
7209            m && (s = parseInt(t.getAttribute("data-swiper-slide-index"), 10));
7210            let r = 90 * s,
7211              n = Math.floor(r / 360);
7212            l && ((r = -r), (n = Math.floor(-r / 360)));
7213            const d = Math.max(Math.min(t.progress, 1), -1);
7214            let h = 0,
7215              g = 0,
7216              v = 0;
7217            s % 4 == 0
7218              ? ((h = 4 * -n * o), (v = 0))
7219              : (s - 1) % 4 == 0
7220              ? ((h = 0), (v = 4 * -n * o))
7221              : (s - 2) % 4 == 0
7222              ? ((h = o + 4 * n * o), (v = o))
7223              : (s - 3) % 4 == 0 && ((h = -o), (v = 3 * o + 4 * o * n)),
7224              l && (h = -h),
7225              u || ((g = h), (h = 0));
7226            const w = `rotateX(${c(u ? 0 : -r)}deg) rotateY(${c(
7227              u ? r : 0
7228            )}deg) translate3d(${h}px, ${g}px, ${v}px)`;
7229            d <= 1 &&
7230              d > -1 &&
7231              ((f = 90 * s + 90 * d), l && (f = 90 * -s - 90 * d)),
7232              (t.style.transform = w),
7233              p.slideShadows && i(t, d, u);
7234          }
7235          if (
7236            ((s.style.transformOrigin = `50% 50% -${o / 2}px`),
7237            (s.style["-webkit-transform-origin"] = `50% 50% -${o / 2}px`),
7238            p.shadow)
7239          )
7240            if (u)
7241              h.style.transform = `translate3d(0px, ${
7242                r / 2 + p.shadowOffset
7243              }px, ${-r / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${
7244                p.shadowScale
7245              })`;
7246            else {
7247              const e = Math.abs(f) - 90 * Math.floor(Math.abs(f) / 90),
7248                t =
7249                  1.5 -
7250                  (Math.sin((2 * e * Math.PI) / 360) / 2 +
7251                    Math.cos((2 * e * Math.PI) / 360) / 2),
7252                s = p.shadowScale,
7253                a = p.shadowScale / t,
7254                i = p.shadowOffset;
7255              h.style.transform = `scale3d(${s}, 1, ${a}) translate3d(0px, ${
7256                n / 2 + i
7257              }px, ${-n / 2 / a}px) rotateX(-89.99deg)`;
7258            }
7259          const g =
7260            (d.isSafari || d.isWebView) && d.needPerspectiveFix ? -o / 2 : 0;
7261          (s.style.transform = `translate3d(0px,0,${g}px) rotateX(${c(
7262            t.isHorizontal() ? 0 : f
7263          )}deg) rotateY(${c(t.isHorizontal() ? -f : 0)}deg)`),
7264            s.style.setProperty("--swiper-cube-translate-z", `${g}px`);
7265        },
7266        setTransition: (e) => {
7267          const { el: s, slides: a } = t;
7268          if (
7269            (a.forEach((t) => {
7270              (t.style.transitionDuration = `${e}ms`),
7271                t
7272                  .querySelectorAll(
7273                    ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
7274                  )
7275                  .forEach((t) => {
7276                    t.style.transitionDuration = `${e}ms`;
7277                  });
7278            }),
7279            t.params.cubeEffect.shadow && !t.isHorizontal())
7280          ) {
7281            const t = s.querySelector(".swiper-cube-shadow");
7282            t && (t.style.transitionDuration = `${e}ms`);
7283          }
7284        },
7285        recreateShadows: () => {
7286          const e = t.isHorizontal();
7287          t.slides.forEach((t) => {
7288            const s = Math.max(Math.min(t.progress, 1), -1);
7289            i(t, s, e);
7290          });
7291        },
7292        getEffectParams: () => t.params.cubeEffect,
7293        perspective: () => !0,
7294        overwriteParams: () => ({
7295          slidesPerView: 1,
7296          slidesPerGroup: 1,
7297          watchSlidesProgress: !0,
7298          resistanceRatio: 0,
7299          spaceBetween: 0,
7300          centeredSlides: !1,
7301          virtualTranslate: !0,
7302        }),
7303      });
7304    },
7305    function (e) {
7306      let { swiper: t, extendParams: s, on: a } = e;
7307      s({ flipEffect: { slideShadows: !0, limitRotation: !0 } });
7308      const i = (e, s) => {
7309        let a = t.isHorizontal()
7310            ? e.querySelector(".swiper-slide-shadow-left")
7311            : e.querySelector(".swiper-slide-shadow-top"),
7312          i = t.isHorizontal()
7313            ? e.querySelector(".swiper-slide-shadow-right")
7314            : e.querySelector(".swiper-slide-shadow-bottom");
7315        a || (a = ge("flip", e, t.isHorizontal() ? "left" : "top")),
7316          i || (i = ge("flip", e, t.isHorizontal() ? "right" : "bottom")),
7317          a && (a.style.opacity = Math.max(-s, 0)),
7318          i && (i.style.opacity = Math.max(s, 0));
7319      };
7320      me({
7321        effect: "flip",
7322        swiper: t,
7323        on: a,
7324        setTranslate: () => {
7325          const { slides: e, rtlTranslate: s } = t,
7326            a = t.params.flipEffect,
7327            r = M(t);
7328          for (let n = 0; n < e.length; n += 1) {
7329            const l = e[n];
7330            let o = l.progress;
7331            t.params.flipEffect.limitRotation &&
7332              (o = Math.max(Math.min(l.progress, 1), -1));
7333            const d = l.swiperSlideOffset;
7334            let c = -180 * o,
7335              p = 0,
7336              u = t.params.cssMode ? -d - t.translate : -d,
7337              m = 0;
7338            t.isHorizontal()
7339              ? s && (c = -c)
7340              : ((m = u), (u = 0), (p = -c), (c = 0)),
7341              (l.style.zIndex = -Math.abs(Math.round(o)) + e.length),
7342              a.slideShadows && i(l, o);
7343            const h = `translate3d(${u}px, ${m}px, 0px) rotateX(${r(
7344              p
7345            )}deg) rotateY(${r(c)}deg)`;
7346            he(0, l).style.transform = h;
7347          }
7348        },
7349        setTransition: (e) => {
7350          const s = t.slides.map((e) => h(e));
7351          s.forEach((t) => {
7352            (t.style.transitionDuration = `${e}ms`),
7353              t
7354                .querySelectorAll(
7355                  ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
7356                )
7357                .forEach((t) => {
7358                  t.style.transitionDuration = `${e}ms`;
7359                });
7360          }),
7361            fe({ swiper: t, duration: e, transformElements: s });
7362        },
7363        recreateShadows: () => {
7364          t.params.flipEffect,
7365            t.slides.forEach((e) => {
7366              let s = e.progress;
7367              t.params.flipEffect.limitRotation &&
7368                (s = Math.max(Math.min(e.progress, 1), -1)),
7369                i(e, s);
7370            });
7371        },
7372        getEffectParams: () => t.params.flipEffect,
7373        perspective: () => !0,
7374        overwriteParams: () => ({
7375          slidesPerView: 1,
7376          slidesPerGroup: 1,
7377          watchSlidesProgress: !0,
7378          spaceBetween: 0,
7379          virtualTranslate: !t.params.cssMode,
7380        }),
7381      });
7382    },
7383    function (e) {
7384      let { swiper: t, extendParams: s, on: a } = e;
7385      s({
7386        coverflowEffect: {
7387          rotate: 50,
7388          stretch: 0,
7389          depth: 100,
7390          scale: 1,
7391          modifier: 1,
7392          slideShadows: !0,
7393        },
7394      }),
7395        me({
7396          effect: "coverflow",
7397          swiper: t,
7398          on: a,
7399          setTranslate: () => {
7400            const { width: e, height: s, slides: a, slidesSizesGrid: i } = t,
7401              r = t.params.coverflowEffect,
7402              n = t.isHorizontal(),
7403              l = t.translate,
7404              o = n ? e / 2 - l : s / 2 - l,
7405              d = n ? r.rotate : -r.rotate,
7406              c = r.depth,
7407              p = M(t);
7408            for (let e = 0, t = a.length; e < t; e += 1) {
7409              const t = a[e],
7410                s = i[e],
7411                l = (o - t.swiperSlideOffset - s / 2) / s,
7412                u =
7413                  "function" == typeof r.modifier
7414                    ? r.modifier(l)
7415                    : l * r.modifier;
7416              let m = n ? d * u : 0,
7417                h = n ? 0 : d * u,
7418                f = -c * Math.abs(u),
7419                g = r.stretch;
7420              "string" == typeof g &&
7421                -1 !== g.indexOf("%") &&
7422                (g = (parseFloat(r.stretch) / 100) * s);
7423              let v = n ? 0 : g * u,
7424                w = n ? g * u : 0,
7425                b = 1 - (1 - r.scale) * Math.abs(u);
7426              Math.abs(w) < 0.001 && (w = 0),
7427                Math.abs(v) < 0.001 && (v = 0),
7428                Math.abs(f) < 0.001 && (f = 0),
7429                Math.abs(m) < 0.001 && (m = 0),
7430                Math.abs(h) < 0.001 && (h = 0),
7431                Math.abs(b) < 0.001 && (b = 0);
7432              const y = `translate3d(${w}px,${v}px,${f}px)  rotateX(${p(
7433                h
7434              )}deg) rotateY(${p(m)}deg) scale(${b})`;
7435              if (
7436                ((he(0, t).style.transform = y),
7437                (t.style.zIndex = 1 - Math.abs(Math.round(u))),
7438                r.slideShadows)
7439              ) {
7440                let e = n
7441                    ? t.querySelector(".swiper-slide-shadow-left")
7442                    : t.querySelector(".swiper-slide-shadow-top"),
7443                  s = n
7444                    ? t.querySelector(".swiper-slide-shadow-right")
7445                    : t.querySelector(".swiper-slide-shadow-bottom");
7446                e || (e = ge("coverflow", t, n ? "left" : "top")),
7447                  s || (s = ge("coverflow", t, n ? "right" : "bottom")),
7448                  e && (e.style.opacity = u > 0 ? u : 0),
7449                  s && (s.style.opacity = -u > 0 ? -u : 0);
7450              }
7451            }
7452          },
7453          setTransition: (e) => {
7454            t.slides
7455              .map((e) => h(e))
7456              .forEach((t) => {
7457                (t.style.transitionDuration = `${e}ms`),
7458                  t
7459                    .querySelectorAll(
7460                      ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
7461                    )
7462                    .forEach((t) => {
7463                      t.style.transitionDuration = `${e}ms`;
7464                    });
7465              });
7466          },
7467          perspective: () => !0,
7468          overwriteParams: () => ({ watchSlidesProgress: !0 }),
7469        });
7470    },
7471    function (e) {
7472      let { swiper: t, extendParams: s, on: a } = e;
7473      s({
7474        creativeEffect: {
7475          limitProgress: 1,
7476          shadowPerProgress: !1,
7477          progressMultiplier: 1,
7478          perspective: !0,
7479          prev: {
7480            translate: [0, 0, 0],
7481            rotate: [0, 0, 0],
7482            opacity: 1,
7483            scale: 1,
7484          },
7485          next: {
7486            translate: [0, 0, 0],
7487            rotate: [0, 0, 0],
7488            opacity: 1,
7489            scale: 1,
7490          },
7491        },
7492      });
7493      const i = (e) => ("string" == typeof e ? e : `${e}px`);
7494      me({
7495        effect: "creative",
7496        swiper: t,
7497        on: a,
7498        setTranslate: () => {
7499          const { slides: e, wrapperEl: s, slidesSizesGrid: a } = t,
7500            r = t.params.creativeEffect,
7501            { progressMultiplier: n } = r,
7502            l = t.params.centeredSlides,
7503            o = M(t);
7504          if (l) {
7505            const e = a[0] / 2 - t.params.slidesOffsetBefore || 0;
7506            s.style.transform = `translateX(calc(50% - ${e}px))`;
7507          }
7508          for (let s = 0; s < e.length; s += 1) {
7509            const a = e[s],
7510              d = a.progress,
7511              c = Math.min(
7512                Math.max(a.progress, -r.limitProgress),
7513                r.limitProgress
7514              );
7515            let p = c;
7516            l ||
7517              (p = Math.min(
7518                Math.max(a.originalProgress, -r.limitProgress),
7519                r.limitProgress
7520              ));
7521            const u = a.swiperSlideOffset,
7522              m = [t.params.cssMode ? -u - t.translate : -u, 0, 0],
7523              h = [0, 0, 0];
7524            let f = !1;
7525            t.isHorizontal() || ((m[1] = m[0]), (m[0] = 0));
7526            let g = {
7527              translate: [0, 0, 0],
7528              rotate: [0, 0, 0],
7529              scale: 1,
7530              opacity: 1,
7531            };
7532            c < 0
7533              ? ((g = r.next), (f = !0))
7534              : c > 0 && ((g = r.prev), (f = !0)),
7535              m.forEach((e, t) => {
7536                m[t] = `calc(${e}px + (${i(g.translate[t])} * ${Math.abs(
7537                  c * n
7538                )}))`;
7539              }),
7540              h.forEach((e, t) => {
7541                let s = g.rotate[t] * Math.abs(c * n);
7542                h[t] = s;
7543              }),
7544              (a.style.zIndex = -Math.abs(Math.round(d)) + e.length);
7545            const v = m.join(", "),
7546              w = `rotateX(${o(h[0])}deg) rotateY(${o(h[1])}deg) rotateZ(${o(
7547                h[2]
7548              )}deg)`,
7549              b =
7550                p < 0
7551                  ? `scale(${1 + (1 - g.scale) * p * n})`
7552                  : `scale(${1 - (1 - g.scale) * p * n})`,
7553              y =
7554                p < 0
7555                  ? 1 + (1 - g.opacity) * p * n
7556                  : 1 - (1 - g.opacity) * p * n,
7557              E = `translate3d(${v}) ${w} ${b}`;
7558            if ((f && g.shadow) || !f) {
7559              let e = a.querySelector(".swiper-slide-shadow");
7560              if ((!e && g.shadow && (e = ge("creative", a)), e)) {
7561                const t = r.shadowPerProgress ? c * (1 / r.limitProgress) : c;
7562                e.style.opacity = Math.min(Math.max(Math.abs(t), 0), 1);
7563              }
7564            }
7565            const x = he(0, a);
7566            (x.style.transform = E),
7567              (x.style.opacity = y),
7568              g.origin && (x.style.transformOrigin = g.origin);
7569          }
7570        },
7571        setTransition: (e) => {
7572          const s = t.slides.map((e) => h(e));
7573          s.forEach((t) => {
7574            (t.style.transitionDuration = `${e}ms`),
7575              t.querySelectorAll(".swiper-slide-shadow").forEach((t) => {
7576                t.style.transitionDuration = `${e}ms`;
7577              });
7578          }),
7579            fe({ swiper: t, duration: e, transformElements: s, allSlides: !0 });
7580        },
7581        perspective: () => t.params.creativeEffect.perspective,
7582        overwriteParams: () => ({
7583          watchSlidesProgress: !0,
7584          virtualTranslate: !t.params.cssMode,
7585        }),
7586      });
7587    },
7588    function (e) {
7589      let { swiper: t, extendParams: s, on: a } = e;
7590      s({
7591        cardsEffect: {
7592          slideShadows: !0,
7593          rotate: !0,
7594          perSlideRotate: 2,
7595          perSlideOffset: 8,
7596        },
7597      }),
7598        me({
7599          effect: "cards",
7600          swiper: t,
7601          on: a,
7602          setTranslate: () => {
7603            const { slides: e, activeIndex: s, rtlTranslate: a } = t,
7604              i = t.params.cardsEffect,
7605              { startTranslate: r, isTouched: n } = t.touchEventsData,
7606              l = a ? -t.translate : t.translate;
7607            for (let o = 0; o < e.length; o += 1) {
7608              const d = e[o],
7609                c = d.progress,
7610                p = Math.min(Math.max(c, -4), 4);
7611              let u = d.swiperSlideOffset;
7612              t.params.centeredSlides &&
7613                !t.params.cssMode &&
7614                (t.wrapperEl.style.transform = `translateX(${t.minTranslate()}px)`),
7615                t.params.centeredSlides &&
7616                  t.params.cssMode &&
7617                  (u -= e[0].swiperSlideOffset);
7618              let m = t.params.cssMode ? -u - t.translate : -u,
7619                h = 0;
7620              const f = -100 * Math.abs(p);
7621              let g = 1,
7622                v = -i.perSlideRotate * p,
7623                w = i.perSlideOffset - 0.75 * Math.abs(p);
7624              const b =
7625                  t.virtual && t.params.virtual.enabled
7626                    ? t.virtual.from + o
7627                    : o,
7628                y =
7629                  (b === s || b === s - 1) &&
7630                  p > 0 &&
7631                  p < 1 &&
7632                  (n || t.params.cssMode) &&
7633                  l < r,
7634                E =
7635                  (b === s || b === s + 1) &&
7636                  p < 0 &&
7637                  p > -1 &&
7638                  (n || t.params.cssMode) &&
7639                  l > r;
7640              if (y || E) {
7641                const e = (1 - Math.abs((Math.abs(p) - 0.5) / 0.5)) ** 0.5;
7642                (v += -28 * p * e),
7643                  (g += -0.5 * e),
7644                  (w += 96 * e),
7645                  (h = -25 * e * Math.abs(p) + "%");
7646              }
7647              if (
7648                ((m =
7649                  p < 0
7650                    ? `calc(${m}px ${a ? "-" : "+"} (${w * Math.abs(p)}%))`
7651                    : p > 0
7652                    ? `calc(${m}px ${a ? "-" : "+"} (-${w * Math.abs(p)}%))`
7653                    : `${m}px`),
7654                !t.isHorizontal())
7655              ) {
7656                const e = h;
7657                (h = m), (m = e);
7658              }
7659              const x = p < 0 ? "" + (1 + (1 - g) * p) : "" + (1 - (1 - g) * p),
7660                S = `\n        translate3d(${m}, ${h}, ${f}px)\n        rotateZ(${
7661                  i.rotate ? (a ? -v : v) : 0
7662                }deg)\n        scale(${x})\n      `;
7663              if (i.slideShadows) {
7664                let e = d.querySelector(".swiper-slide-shadow");
7665                e || (e = ge("cards", d)),
7666                  e &&
7667                    (e.style.opacity = Math.min(
7668                      Math.max((Math.abs(p) - 0.5) / 0.5, 0),
7669                      1
7670                    ));
7671              }
7672              d.style.zIndex = -Math.abs(Math.round(c)) + e.length;
7673              he(0, d).style.transform = S;
7674            }
7675          },
7676          setTransition: (e) => {
7677            const s = t.slides.map((e) => h(e));
7678            s.forEach((t) => {
7679              (t.style.transitionDuration = `${e}ms`),
7680                t.querySelectorAll(".swiper-slide-shadow").forEach((t) => {
7681                  t.style.transitionDuration = `${e}ms`;
7682                });
7683            }),
7684              fe({ swiper: t, duration: e, transformElements: s });
7685          },
7686          perspective: () => !0,
7687          overwriteParams: () => ({
7688            _loopSwapReset: !1,
7689            watchSlidesProgress: !0,
7690            loopAdditionalSlides: t.params.cardsEffect.rotate ? 3 : 2,
7691            centeredSlides: !0,
7692            virtualTranslate: !t.params.cssMode,
7693          }),
7694        });
7695    },
7696  ];
7697  return re.use(ve), re;
7698})();
7699//# sourceMappingURL=swiper-bundle.min.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.