PageSourceSearch

https://publishers.asn.au/iPartSource/carousel.zip/swiper-bundle.min.js

js publishers.asn.au collected 2026-10-02 05:29:02 UTC 254,081 bytes, 6,100 lines download raw bytes

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