PageSourceSearch

https://www.fondazionetaranto25.it/wp-content/plugins/image-slider-slideshow/assets/js/swiper.min.js?ver=1.9

js fondazionetaranto25.it collected 2026-10-05 08:49:37 UTC 250,009 bytes, 4,498 lines download raw bytes

1/**
2 * Swiper 5.3.1
3 * Most modern mobile touch slider and framework with hardware accelerated transitions
4 * http://swiperjs.com
5 *
6 * Copyright 2014-2020 Vladimir Kharlampidi
7 *
8 * Released under the MIT License
9 *
10 * Released on: February 8, 2020
11 */
12
13!(function (e, t) {
14    "object" == typeof exports && "undefined" != typeof module ? (module.exports = t()) : "function" == typeof define && define.amd ? define(t) : ((e = e || self).Swiper = t());
15})(this, function () {
16    "use strict";
17    var e =
18            "undefined" == typeof document
19                ? {
20                      body: {},
21                      addEventListener: function () {},
22                      removeEventListener: function () {},
23                      activeElement: { blur: function () {}, nodeName: "" },
24                      querySelector: function () {
25                          return null;
26                      },
27                      querySelectorAll: function () {
28                          return [];
29                      },
30                      getElementById: function () {
31                          return null;
32                      },
33                      createEvent: function () {
34                          return { initEvent: function () {} };
35                      },
36                      createElement: function () {
37                          return {
38                              children: [],
39                              childNodes: [],
40                              style: {},
41                              setAttribute: function () {},
42                              getElementsByTagName: function () {
43                                  return [];
44                              },
45                          };
46                      },
47                      location: { hash: "" },
48                  }
49                : document,
50        t =
51            "undefined" == typeof window
52                ? {
53                      document: e,
54                      navigator: { userAgent: "" },
55                      location: {},
56                      history: {},
57                      CustomEvent: function () {
58                          return this;
59                      },
60                      addEventListener: function () {},
61                      removeEventListener: function () {},
62                      getComputedStyle: function () {
63                          return {
64                              getPropertyValue: function () {
65                                  return "";
66                              },
67                          };
68                      },
69                      Image: function () {},
70                      Date: function () {},
71                      screen: {},
72                      setTimeout: function () {},
73                      clearTimeout: function () {},
74                  }
75                : window,
76        i = function (e) {
77            for (var t = 0; t < e.length; t += 1) this[t] = e[t];
78            return (this.length = e.length), this;
79        };
80    function s(s, a) {
81        var r = [],
82            n = 0;
83        if (s && !a && s instanceof i) return s;
84        if (s)
85            if ("string" == typeof s) {
86                var o,
87                    l,
88                    d = s.trim();
89                if (d.indexOf("<") >= 0 && d.indexOf(">") >= 0) {
90                    var h = "div";
91                    for (
92                        0 === d.indexOf("<li") && (h = "ul"),
93                            0 === d.indexOf("<tr") && (h = "tbody"),
94                            (0 !== d.indexOf("<td") && 0 !== d.indexOf("<th")) || (h = "tr"),
95                            0 === d.indexOf("<tbody") && (h = "table"),
96                            0 === d.indexOf("<option") && (h = "select"),
97                            (l = e.createElement(h)).innerHTML = d,
98                            n = 0;
99                        n < l.childNodes.length;
100                        n += 1
101                    )
102                        r.push(l.childNodes[n]);
103                } else for (o = a || "#" !== s[0] || s.match(/[ .<>:~]/) ? (a || e).querySelectorAll(s.trim()) : [e.getElementById(s.trim().split("#")[1])], n = 0; n < o.length; n += 1) o[n] && r.push(o[n]);
104            } else if (s.nodeType || s === t || s === e) r.push(s);
105            else if (s.length > 0 && s[0].nodeType) for (n = 0; n < s.length; n += 1) r.push(s[n]);
106        return new i(r);
107    }
108    function a(e) {
109        for (var t = [], i = 0; i < e.length; i += 1) -1 === t.indexOf(e[i]) && t.push(e[i]);
110        return t;
111    }
112    (s.fn = i.prototype), (s.Class = i), (s.Dom7 = i);
113    var r = {
114        addClass: function (e) {
115            if (void 0 === e) return this;
116            for (var t = e.split(" "), i = 0; i < t.length; i += 1) for (var s = 0; s < this.length; s += 1) void 0 !== this[s] && void 0 !== this[s].classList && this[s].classList.add(t[i]);
117            return this;
118        },
119        removeClass: function (e) {
120            for (var t = e.split(" "), i = 0; i < t.length; i += 1) for (var s = 0; s < this.length; s += 1) void 0 !== this[s] && void 0 !== this[s].classList && this[s].classList.remove(t[i]);
121            return this;
122        },
123        hasClass: function (e) {
124            return !!this[0] && this[0].classList.contains(e);
125        },
126        toggleClass: function (e) {
127            for (var t = e.split(" "), i = 0; i < t.length; i += 1) for (var s = 0; s < this.length; s += 1) void 0 !== this[s] && void 0 !== this[s].classList && this[s].classList.toggle(t[i]);
128            return this;
129        },
130        attr: function (e, t) {
131            var i = arguments;
132            if (1 === arguments.length && "string" == typeof e) return this[0] ? this[0].getAttribute(e) : void 0;
133            for (var s = 0; s < this.length; s += 1)
134                if (2 === i.length) this[s].setAttribute(e, t);
135                else for (var a in e) (this[s][a] = e[a]), this[s].setAttribute(a, e[a]);
136            return this;
137        },
138        removeAttr: function (e) {
139            for (var t = 0; t < this.length; t += 1) this[t].removeAttribute(e);
140            return this;
141        },
142        data: function (e, t) {
143            var i;
144            if (void 0 !== t) {
145                for (var s = 0; s < this.length; s += 1) (i = this[s]).dom7ElementDataStorage || (i.dom7ElementDataStorage = {}), (i.dom7ElementDataStorage[e] = t);
146                return this;
147            }
148            if ((i = this[0])) {
149                if (i.dom7ElementDataStorage && e in i.dom7ElementDataStorage) return i.dom7ElementDataStorage[e];
150                var a = i.getAttribute("data-" + e);
151                return a || void 0;
152            }
153        },
154        transform: function (e) {
155            for (var t = 0; t < this.length; t += 1) {
156                var i = this[t].style;
157                (i.webkitTransform = e), (i.transform = e);
158            }
159            return this;
160        },
161        transition: function (e) {
162            "string" != typeof e && (e += "ms");
163            for (var t = 0; t < this.length; t += 1) {
164                var i = this[t].style;
165                (i.webkitTransitionDuration = e), (i.transitionDuration = e);
166            }
167            return this;
168        },
169        on: function () {
170            for (var e, t = [], i = arguments.length; i--; ) t[i] = arguments[i];
171            var a = t[0],
172                r = t[1],
173                n = t[2],
174                o = t[3];
175            function l(e) {
176                var t = e.target;
177                if (t) {
178                    var i = e.target.dom7EventData || [];
179                    if ((i.indexOf(e) < 0 && i.unshift(e), s(t).is(r))) n.apply(t, i);
180                    else for (var a = s(t).parents(), o = 0; o < a.length; o += 1) s(a[o]).is(r) && n.apply(a[o], i);
181                }
182            }
183            function d(e) {
184                var t = (e && e.target && e.target.dom7EventData) || [];
185                t.indexOf(e) < 0 && t.unshift(e), n.apply(this, t);
186            }
187            "function" == typeof t[1] && ((a = (e = t)[0]), (n = e[1]), (o = e[2]), (r = void 0)), o || (o = !1);
188            for (var h, p = a.split(" "), c = 0; c < this.length; c += 1) {
189                var u = this[c];
190                if (r)
191                    for (h = 0; h < p.length; h += 1) {
192                        var v = p[h];
193                        u.dom7LiveListeners || (u.dom7LiveListeners = {}), u.dom7LiveListeners[v] || (u.dom7LiveListeners[v] = []), u.dom7LiveListeners[v].push({ listener: n, proxyListener: l }), u.addEventListener(v, l, o);
194                    }
195                else
196                    for (h = 0; h < p.length; h += 1) {
197                        var f = p[h];
198                        u.dom7Listeners || (u.dom7Listeners = {}), u.dom7Listeners[f] || (u.dom7Listeners[f] = []), u.dom7Listeners[f].push({ listener: n, proxyListener: d }), u.addEventListener(f, d, o);
199                    }
200            }
201            return this;
202        },
203        off: function () {
204            for (var e, t = [], i = arguments.length; i--; ) t[i] = arguments[i];
205            var s = t[0],
206                a = t[1],
207                r = t[2],
208                n = t[3];
209            "function" == typeof t[1] && ((s = (e = t)[0]), (r = e[1]), (n = e[2]), (a = void 0)), n || (n = !1);
210            for (var o = s.split(" "), l = 0; l < o.length; l += 1)
211                for (var d = o[l], h = 0; h < this.length; h += 1) {
212                    var p = this[h],
213                        c = void 0;
214                    if ((!a && p.dom7Listeners ? (c = p.dom7Listeners[d]) : a && p.dom7LiveListeners && (c = p.dom7LiveListeners[d]), c && c.length))
215                        for (var u = c.length - 1; u >= 0; u -= 1) {
216                            var v = c[u];
217                            r && v.listener === r
218                                ? (p.removeEventListener(d, v.proxyListener, n), c.splice(u, 1))
219                                : r && v.listener && v.listener.dom7proxy && v.listener.dom7proxy === r
220                                ? (p.removeEventListener(d, v.proxyListener, n), c.splice(u, 1))
221                                : r || (p.removeEventListener(d, v.proxyListener, n), c.splice(u, 1));
222                        }
223                }
224            return this;
225        },
226        trigger: function () {
227            for (var i = [], s = arguments.length; s--; ) i[s] = arguments[s];
228            for (var a = i[0].split(" "), r = i[1], n = 0; n < a.length; n += 1)
229                for (var o = a[n], l = 0; l < this.length; l += 1) {
230                    var d = this[l],
231                        h = void 0;
232                    try {
233                        h = new t.CustomEvent(o, { detail: r, bubbles: !0, cancelable: !0 });
234                    } catch (t) {
235                        (h = e.createEvent("Event")).initEvent(o, !0, !0), (h.detail = r);
236                    }
237                    (d.dom7EventData = i.filter(function (e, t) {
238                        return t > 0;
239                    })),
240                        d.dispatchEvent(h),
241                        (d.dom7EventData = []),
242                        delete d.dom7EventData;
243                }
244            return this;
245        },
246        transitionEnd: function (e) {
247            var t,
248                i = ["webkitTransitionEnd", "transitionend"],
249                s = this;
250            function a(r) {
251                if (r.target === this) for (e.call(this, r), t = 0; t < i.length; t += 1) s.off(i[t], a);
252            }
253            if (e) for (t = 0; t < i.length; t += 1) s.on(i[t], a);
254            return this;
255        },
256        outerWidth: function (e) {
257            if (this.length > 0) {
258                if (e) {
259                    var t = this.styles();
260                    return this[0].offsetWidth + parseFloat(t.getPropertyValue("margin-right")) + parseFloat(t.getPropertyValue("margin-left"));
261                }
262                return this[0].offsetWidth;
263            }
264            return null;
265        },
266        outerHeight: function (e) {
267            if (this.length > 0) {
268                if (e) {
269                    var t = this.styles();
270                    return this[0].offsetHeight + parseFloat(t.getPropertyValue("margin-top")) + parseFloat(t.getPropertyValue("margin-bottom"));
271                }
272                return this[0].offsetHeight;
273            }
274            return null;
275        },
276        offset: function () {
277            if (this.length > 0) {
278                var i = this[0],
279                    s = i.getBoundingClientRect(),
280                    a = e.body,
281                    r = i.clientTop || a.clientTop || 0,
282                    n = i.clientLeft || a.clientLeft || 0,
283                    o = i === t ? t.scrollY : i.scrollTop,
284                    l = i === t ? t.scrollX : i.scrollLeft;
285                return { top: s.top + o - r, left: s.left + l - n };
286            }
287            return null;
288        },
289        css: function (e, i) {
290            var s;
291            if (1 === arguments.length) {
292                if ("string" != typeof e) {
293                    for (s = 0; s < this.length; s += 1) for (var a in e) this[s].style[a] = e[a];
294                    return this;
295                }
296                if (this[0]) return t.getComputedStyle(this[0], null).getPropertyValue(e);
297            }
298            if (2 === arguments.length && "string" == typeof e) {
299                for (s = 0; s < this.length; s += 1) this[s].style[e] = i;
300                return this;
301            }
302            return this;
303        },
304        each: function (e) {
305            if (!e) return this;
306            for (var t = 0; t < this.length; t += 1) if (!1 === e.call(this[t], t, this[t])) return this;
307            return this;
308        },
309        html: function (e) {
310            if (void 0 === e) return this[0] ? this[0].innerHTML : void 0;
311            for (var t = 0; t < this.length; t += 1) this[t].innerHTML = e;
312            return this;
313        },
314        text: function (e) {
315            if (void 0 === e) return this[0] ? this[0].textContent.trim() : null;
316            for (var t = 0; t < this.length; t += 1) this[t].textContent = e;
317            return this;
318        },
319        is: function (a) {
320            var r,
321                n,
322                o = this[0];
323            if (!o || void 0 === a) return !1;
324            if ("string" == typeof a) {
325                if (o.matches) return o.matches(a);
326                if (o.webkitMatchesSelector) return o.webkitMatchesSelector(a);
327                if (o.msMatchesSelector) return o.msMatchesSelector(a);
328                for (r = s(a), n = 0; n < r.length; n += 1) if (r[n] === o) return !0;
329                return !1;
330            }
331            if (a === e) return o === e;
332            if (a === t) return o === t;
333            if (a.nodeType || a instanceof i) {
334                for (r = a.nodeType ? [a] : a, n = 0; n < r.length; n += 1) if (r[n] === o) return !0;
335                return !1;
336            }
337            return !1;
338        },
339        index: function () {
340            var e,
341                t = this[0];
342            if (t) {
343                for (e = 0; null !== (t = t.previousSibling); ) 1 === t.nodeType && (e += 1);
344                return e;
345            }
346        },
347        eq: function (e) {
348            if (void 0 === e) return this;
349            var t,
350                s = this.length;
351            return new i(e > s - 1 ? [] : e < 0 ? ((t = s + e) < 0 ? [] : [this[t]]) : [this[e]]);
352        },
353        append: function () {
354            for (var t, s = [], a = arguments.length; a--; ) s[a] = arguments[a];
355            for (var r = 0; r < s.length; r += 1) {
356                t = s[r];
357                for (var n = 0; n < this.length; n += 1)
358                    if ("string" == typeof t) {
359                        var o = e.createElement("div");
360                        for (o.innerHTML = t; o.firstChild; ) this[n].appendChild(o.firstChild);
361                    } else if (t instanceof i) for (var l = 0; l < t.length; l += 1) this[n].appendChild(t[l]);
362                    else this[n].appendChild(t);
363            }
364            return this;
365        },
366        prepend: function (t) {
367            var s, a;
368            for (s = 0; s < this.length; s += 1)
369                if ("string" == typeof t) {
370                    var r = e.createElement("div");
371                    for (r.innerHTML = t, a = r.childNodes.length - 1; a >= 0; a -= 1) this[s].insertBefore(r.childNodes[a], this[s].childNodes[0]);
372                } else if (t instanceof i) for (a = 0; a < t.length; a += 1) this[s].insertBefore(t[a], this[s].childNodes[0]);
373                else this[s].insertBefore(t, this[s].childNodes[0]);
374            return this;
375        },
376        next: function (e) {
377            return this.length > 0
378                ? e
379                    ? this[0].nextElementSibling && s(this[0].nextElementSibling).is(e)
380                        ? new i([this[0].nextElementSibling])
381                        : new i([])
382                    : this[0].nextElementSibling
383                    ? new i([this[0].nextElementSibling])
384                    : new i([])
385                : new i([]);
386        },
387        nextAll: function (e) {
388            var t = [],
389                a = this[0];
390            if (!a) return new i([]);
391            for (; a.nextElementSibling; ) {
392                var r = a.nextElementSibling;
393                e ? s(r).is(e) && t.push(r) : t.push(r), (a = r);
394            }
395            return new i(t);
396        },
397        prev: function (e) {
398            if (this.length > 0) {
399                var t = this[0];
400                return e ? (t.previousElementSibling && s(t.previousElementSibling).is(e) ? new i([t.previousElementSibling]) : new i([])) : t.previousElementSibling ? new i([t.previousElementSibling]) : new i([]);
401            }
402            return new i([]);
403        },
404        prevAll: function (e) {
405            var t = [],
406                a = this[0];
407            if (!a) return new i([]);
408            for (; a.previousElementSibling; ) {
409                var r = a.previousElementSibling;
410                e ? s(r).is(e) && t.push(r) : t.push(r), (a = r);
411            }
412            return new i(t);
413        },
414        parent: function (e) {
415            for (var t = [], i = 0; i < this.length; i += 1) null !== this[i].parentNode && (e ? s(this[i].parentNode).is(e) && t.push(this[i].parentNode) : t.push(this[i].parentNode));
416            return s(a(t));
417        },
418        parents: function (e) {
419            for (var t = [], i = 0; i < this.length; i += 1) for (var r = this[i].parentNode; r; ) e ? s(r).is(e) && t.push(r) : t.push(r), (r = r.parentNode);
420            return s(a(t));
421        },
422        closest: function (e) {
423            var t = this;
424            return void 0 === e ? new i([]) : (t.is(e) || (t = t.parents(e).eq(0)), t);
425        },
426        find: function (e) {
427            for (var t = [], s = 0; s < this.length; s += 1) for (var a = this[s].querySelectorAll(e), r = 0; r < a.length; r += 1) t.push(a[r]);
428            return new i(t);
429        },
430        children: function (e) {
431            for (var t = [], r = 0; r < this.length; r += 1) for (var n = this[r].childNodes, o = 0; o < n.length; o += 1) e ? 1 === n[o].nodeType && s(n[o]).is(e) && t.push(n[o]) : 1 === n[o].nodeType && t.push(n[o]);
432            return new i(a(t));
433        },
434        filter: function (e) {
435            for (var t = [], s = 0; s < this.length; s += 1) e.call(this[s], s, this[s]) && t.push(this[s]);
436            return new i(t);
437        },
438        remove: function () {
439            for (var e = 0; e < this.length; e += 1) this[e].parentNode && this[e].parentNode.removeChild(this[e]);
440            return this;
441        },
442        add: function () {
443            for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];
444            var i, a;
445            for (i = 0; i < e.length; i += 1) {
446                var r = s(e[i]);
447                for (a = 0; a < r.length; a += 1) (this[this.length] = r[a]), (this.length += 1);
448            }
449            return this;
450        },
451        styles: function () {
452            return this[0] ? t.getComputedStyle(this[0], null) : {};
453        },
454    };
455    Object.keys(r).forEach(function (e) {
456        s.fn[e] = s.fn[e] || r[e];
457    });
458    var n = {
459            deleteProps: function (e) {
460                var t = e;
461                Object.keys(t).forEach(function (e) {
462                    try {
463                        t[e] = null;
464                    } catch (e) {}
465                    try {
466                        delete t[e];
467                    } catch (e) {}
468                });
469            },
470            nextTick: function (e, t) {
471                return void 0 === t && (t = 0), setTimeout(e, t);
472            },
473            now: function () {
474                return Date.now();
475            },
476            getTranslate: function (e, i) {
477                var s, a, r;
478                void 0 === i && (i = "x");
479                var n = t.getComputedStyle(e, null);
480                return (
481                    t.WebKitCSSMatrix
482                        ? ((a = n.transform || n.webkitTransform).split(",").length > 6 &&
483                              (a = a
484                                  .split(", ")
485                                  .map(function (e) {
486                                      return e.replace(",", ".");
487                                  })
488                                  .join(", ")),
489                          (r = new t.WebKitCSSMatrix("none" === a ? "" : a)))
490                        : (s = (r = n.MozTransform || n.OTransform || n.MsTransform || n.msTransform || n.transform || n.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,")).toString().split(",")),
491                    "x" === i && (a = t.WebKitCSSMatrix ? r.m41 : 16 === s.length ? parseFloat(s[12]) : parseFloat(s[4])),
492                    "y" === i && (a = t.WebKitCSSMatrix ? r.m42 : 16 === s.length ? parseFloat(s[13]) : parseFloat(s[5])),
493                    a || 0
494                );
495            },
496            parseUrlQuery: function (e) {
497                var i,
498                    s,
499                    a,
500                    r,
501                    n = {},
502                    o = e || t.location.href;
503                if ("string" == typeof o && o.length)
504                    for (
505                        r = (s = (o = o.indexOf("?") > -1 ? o.replace(/\S*\?/, "") : "").split("&").filter(function (e) {
506                            return "" !== e;
507                        })).length,
508                            i = 0;
509                        i < r;
510                        i += 1
511                    )
512                        (a = s[i].replace(/#\S+/g, "").split("=")), (n[decodeURIComponent(a[0])] = void 0 === a[1] ? void 0 : decodeURIComponent(a[1]) || "");
513                return n;
514            },
515            isObject: function (e) {
516                return "object" == typeof e && null !== e && e.constructor && e.constructor === Object;
517            },
518            extend: function () {
519                for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];
520                for (var i = Object(e[0]), s = 1; s < e.length; s += 1) {
521                    var a = e[s];
522                    if (null != a)
523                        for (var r = Object.keys(Object(a)), o = 0, l = r.length; o < l; o += 1) {
524                            var d = r[o],
525                                h = Object.getOwnPropertyDescriptor(a, d);
526                            void 0 !== h && h.enumerable && (n.isObject(i[d]) && n.isObject(a[d]) ? n.extend(i[d], a[d]) : !n.isObject(i[d]) && n.isObject(a[d]) ? ((i[d] = {}), n.extend(i[d], a[d])) : (i[d] = a[d]));
527                        }
528                }
529                return i;
530            },
531        },
532        o = {
533            touch: (t.Modernizr && !0 === t.Modernizr.touch) || !!(t.navigator.maxTouchPoints > 0 || "ontouchstart" in t || (t.DocumentTouch && e instanceof t.DocumentTouch)),
534            pointerEvents: !!t.PointerEvent && "maxTouchPoints" in t.navigator && t.navigator.maxTouchPoints > 0,
535            observer: "MutationObserver" in t || "WebkitMutationObserver" in t,
536            passiveListener: (function () {
537                var e = !1;
538                try {
539                    var i = Object.defineProperty({}, "passive", {
540                        get: function () {
541                            e = !0;
542                        },
543                    });
544                    t.addEventListener("testPassiveListener", null, i);
545                } catch (e) {}
546                return e;
547            })(),
548            gestures: "ongesturestart" in t,
549        },
550        l = function (e) {
551            void 0 === e && (e = {});
552            var t = this;
553            (t.params = e),
554                (t.eventsListeners = {}),
555                t.params &&
556                    t.params.on &&
557                    Object.keys(t.params.on).forEach(function (e) {
558                        t.on(e, t.params.on[e]);
559                    });
560        },
561        d = { components: { configurable: !0 } };
562    (l.prototype.on = function (e, t, i) {
563        var s = this;
564        if ("function" != typeof t) return s;
565        var a = i ? "unshift" : "push";
566        return (
567            e.split(" ").forEach(function (e) {
568                s.eventsListeners[e] || (s.eventsListeners[e] = []), s.eventsListeners[e][a](t);
569            }),
570            s
571        );
572    }),
573        (l.prototype.once = function (e, t, i) {
574            var s = this;
575            if ("function" != typeof t) return s;
576            function a() {
577                for (var i = [], r = arguments.length; r--; ) i[r] = arguments[r];
578                s.off(e, a), a.f7proxy && delete a.f7proxy, t.apply(s, i);
579            }
580            return (a.f7proxy = t), s.on(e, a, i);
581        }),
582        (l.prototype.off = function (e, t) {
583            var i = this;
584            return i.eventsListeners
585                ? (e.split(" ").forEach(function (e) {
586                      void 0 === t
587                          ? (i.eventsListeners[e] = [])
588                          : i.eventsListeners[e] &&
589                            i.eventsListeners[e].length &&
590                            i.eventsListeners[e].forEach(function (s, a) {
591                                (s === t || (s.f7proxy && s.f7proxy === t)) && i.eventsListeners[e].splice(a, 1);
592                            });
593                  }),
594                  i)
595                : i;
596        }),
597        (l.prototype.emit = function () {
598            for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];
599            var i,
600                s,
601                a,
602                r = this;
603            if (!r.eventsListeners) return r;
604            "string" == typeof e[0] || Array.isArray(e[0]) ? ((i = e[0]), (s = e.slice(1, e.length)), (a = r)) : ((i = e[0].events), (s = e[0].data), (a = e[0].context || r));
605            var n = Array.isArray(i) ? i : i.split(" ");
606            return (
607                n.forEach(function (e) {
608                    if (r.eventsListeners && r.eventsListeners[e]) {
609                        var t = [];
610                        r.eventsListeners[e].forEach(function (e) {
611                            t.push(e);
612                        }),
613                            t.forEach(function (e) {
614                                e.apply(a, s);
615                            });
616                    }
617                }),
618                r
619            );
620        }),
621        (l.prototype.useModulesParams = function (e) {
622            var t = this;
623            t.modules &&
624                Object.keys(t.modules).forEach(function (i) {
625                    var s = t.modules[i];
626                    s.params && n.extend(e, s.params);
627                });
628        }),
629        (l.prototype.useModules = function (e) {
630            void 0 === e && (e = {});
631            var t = this;
632            t.modules &&
633                Object.keys(t.modules).forEach(function (i) {
634                    var s = t.modules[i],
635                        a = e[i] || {};
636                    s.instance &&
637                        Object.keys(s.instance).forEach(function (e) {
638                            var i = s.instance[e];
639                            t[e] = "function" == typeof i ? i.bind(t) : i;
640                        }),
641                        s.on &&
642                            t.on &&
643                            Object.keys(s.on).forEach(function (e) {
644                                t.on(e, s.on[e]);
645                            }),
646                        s.create && s.create.bind(t)(a);
647                });
648        }),
649        (d.components.set = function (e) {
650            this.use && this.use(e);
651        }),
652        (l.installModule = function (e) {
653            for (var t = [], i = arguments.length - 1; i-- > 0; ) t[i] = arguments[i + 1];
654            var s = this;
655            s.prototype.modules || (s.prototype.modules = {});
656            var a = e.name || Object.keys(s.prototype.modules).length + "_" + n.now();
657            return (
658                (s.prototype.modules[a] = e),
659                e.proto &&
660                    Object.keys(e.proto).forEach(function (t) {
661                        s.prototype[t] = e.proto[t];
662                    }),
663                e.static &&
664                    Object.keys(e.static).forEach(function (t) {
665                        s[t] = e.static[t];
666                    }),
667                e.install && e.install.apply(s, t),
668                s
669            );
670        }),
671        (l.use = function (e) {
672            for (var t = [], i = arguments.length - 1; i-- > 0; ) t[i] = arguments[i + 1];
673            var s = this;
674            return Array.isArray(e)
675                ? (e.forEach(function (e) {
676                      return s.installModule(e);
677                  }),
678                  s)
679                : s.installModule.apply(s, [e].concat(t));
680        }),
681        Object.defineProperties(l, d);
682    var h = {
683        updateSize: function () {
684            var e,
685                t,
686                i = this.$el;
687            (e = void 0 !== this.params.width ? this.params.width : i[0].clientWidth),
688                (t = void 0 !== this.params.height ? this.params.height : i[0].clientHeight),
689                (0 === e && this.isHorizontal()) ||
690                    (0 === t && this.isVertical()) ||
691                    ((e = e - parseInt(i.css("padding-left"), 10) - parseInt(i.css("padding-right"), 10)),
692                    (t = t - parseInt(i.css("padding-top"), 10) - parseInt(i.css("padding-bottom"), 10)),
693                    n.extend(this, { width: e, height: t, size: this.isHorizontal() ? e : t }));
694        },
695        updateSlides: function () {
696            var e = this.params,
697                i = this.$wrapperEl,
698                s = this.size,
699                a = this.rtlTranslate,
700                r = this.wrongRTL,
701                o = this.virtual && e.virtual.enabled,
702                l = o ? this.virtual.slides.length : this.slides.length,
703                d = i.children("." + this.params.slideClass),
704                h = o ? this.virtual.slides.length : d.length,
705                p = [],
706                c = [],
707                u = [];
708            function v(t) {
709                return !e.cssMode || t !== d.length - 1;
710            }
711            var f = e.slidesOffsetBefore;
712            "function" == typeof f && (f = e.slidesOffsetBefore.call(this));
713            var m = e.slidesOffsetAfter;
714            "function" == typeof m && (m = e.slidesOffsetAfter.call(this));
715            var g = this.snapGrid.length,
716                b = this.snapGrid.length,
717                w = e.spaceBetween,
718                y = -f,
719                x = 0,
720                T = 0;
721            if (void 0 !== s) {
722                var E, S;
723                "string" == typeof w && w.indexOf("%") >= 0 && (w = (parseFloat(w.replace("%", "")) / 100) * s),
724                    (this.virtualSize = -w),
725                    a ? d.css({ marginLeft: "", marginTop: "" }) : d.css({ marginRight: "", marginBottom: "" }),
726                    e.slidesPerColumn > 1 &&
727                        ((E = Math.floor(h / e.slidesPerColumn) === h / this.params.slidesPerColumn ? h : Math.ceil(h / e.slidesPerColumn) * e.slidesPerColumn),
728                        "auto" !== e.slidesPerView && "row" === e.slidesPerColumnFill && (E = Math.max(E, e.slidesPerView * e.slidesPerColumn)));
729                for (var C, M = e.slidesPerColumn, P = E / M, z = Math.floor(h / e.slidesPerColumn), k = 0; k < h; k += 1) {
730                    S = 0;
731                    var $ = d.eq(k);
732                    if (e.slidesPerColumn > 1) {
733                        var L = void 0,
734                            I = void 0,
735                            D = void 0;
736                        if ("row" === e.slidesPerColumnFill && e.slidesPerGroup > 1) {
737                            var O = Math.floor(k / (e.slidesPerGroup * e.slidesPerColumn)),
738                                A = k - e.slidesPerColumn * e.slidesPerGroup * O,
739                                G = 0 === O ? e.slidesPerGroup : Math.min(Math.ceil((h - O * M * e.slidesPerGroup) / M), e.slidesPerGroup);
740                            (L = (I = A - (D = Math.floor(A / G)) * G + O * e.slidesPerGroup) + (D * E) / M), $.css({ "
740-webkit-box-ordinal-group": L, "-moz-box-ordinal-group": L, "-ms-flex-order": L, "-webkit-order": L, order: L });
741                        } else "column" === e.slidesPerColumnFill ? ((D = k - (I = Math.floor(k / M)) * M), (I > z || (I === z && D === M - 1)) && (D += 1) >= M && ((D = 0), (I += 1))) : (I = k - (D = Math.floor(k / P)) * P);
742                        $.css("margin-" + (this.isHorizontal() ? "top" : "left"), 0 !== D && e.spaceBetween && e.spaceBetween + "px");
743                    }
744                    if ("none" !== $.css("display")) {
745                        if ("auto" === e.slidesPerView) {
746                            var B = t.getComputedStyle($[0], null),
747                                H = $[0].style.transform,
748                                N = $[0].style.webkitTransform;
749                            if ((H && ($[0].style.transform = "none"), N && ($[0].style.webkitTransform = "none"), e.roundLengths)) S = this.isHorizontal() ? $.outerWidth(!0) : $.outerHeight(!0);
750                            else if (this.isHorizontal()) {
751                                var X = parseFloat(B.getPropertyValue("width")),
752                                    V = parseFloat(B.getPropertyValue("padding-left")),
753                                    Y = parseFloat(B.getPropertyValue("padding-right")),
754                                    F = parseFloat(B.getPropertyValue("margin-left")),
755                                    W = parseFloat(B.getPropertyValue("margin-right")),
756                                    R = B.getPropertyValue("box-sizing");
757                                S = R && "border-box" === R ? X + F + W : X + V + Y + F + W;
758                            } else {
759                                var q = parseFloat(B.getPropertyValue("height")),
760                                    j = parseFloat(B.getPropertyValue("padding-top")),
761                                    K = parseFloat(B.getPropertyValue("padding-bottom")),
762                                    U = parseFloat(B.getPropertyValue("margin-top")),
763                                    _ = parseFloat(B.getPropertyValue("margin-bottom")),
764                                    Z = B.getPropertyValue("box-sizing");
765                                S = Z && "border-box" === Z ? q + U + _ : q + j + K + U + _;
766                            }
767                            H && ($[0].style.transform = H), N && ($[0].style.webkitTransform = N), e.roundLengths && (S = Math.floor(S));
768                        } else (S = (s - (e.slidesPerView - 1) * w) / e.slidesPerView), e.roundLengths && (S = Math.floor(S)), d[k] && (this.isHorizontal() ? (d[k].style.width = S + "px") : (d[k].style.height = S + "px"));
769                        d[k] && (d[k].swiperSlideSize = S),
770                            u.push(S),
771                            e.centeredSlides
772                                ? ((y = y + S / 2 + x / 2 + w),
773                                  0 === x && 0 !== k && (y = y - s / 2 - w),
774                                  0 === k && (y = y - s / 2 - w),
775                                  Math.abs(y) < 0.001 && (y = 0),
776                                  e.roundLengths && (y = Math.floor(y)),
777                                  T % e.slidesPerGroup == 0 && p.push(y),
778                                  c.push(y))
779                                : (e.roundLengths && (y = Math.floor(y)), (T - Math.min(this.params.slidesPerGroupSkip, T)) % this.params.slidesPerGroup == 0 && p.push(y), c.push(y), (y = y + S + w)),
780                            (this.virtualSize += S + w),
781                            (x = S),
782                            (T += 1);
783                    }
784                }
785                if (
786                    ((this.virtualSize = Math.max(this.virtualSize, s) + m),
787                    a && r && ("slide" === e.effect || "coverflow" === e.effect) && i.css({ width: this.virtualSize + e.spaceBetween + "px" }),
788                    e.setWrapperSize && (this.isHorizontal() ? i.css({ width: this.virtualSize + e.spaceBetween + "px" }) : i.css({ height: this.virtualSize + e.spaceBetween + "px" })),
789                    e.slidesPerColumn > 1 &&
790                        ((this.virtualSize = (S + e.spaceBetween) * E),
791                        (this.virtualSize = Math.ceil(this.virtualSize / e.slidesPerColumn) - e.spaceBetween),
792                        this.isHorizontal() ? i.css({ width: this.virtualSize + e.spaceBetween + "px" }) : i.css({ height: this.virtualSize + e.spaceBetween + "px" }),
793                        e.centeredSlides))
794                ) {
795                    C = [];
796                    for (var Q = 0; Q < p.length; Q += 1) {
797                        var J = p[Q];
798                        e.roundLengths && (J = Math.floor(J)), p[Q] < this.virtualSize + p[0] && C.push(J);
799                    }
800                    p = C;
801                }
802                if (!e.centeredSlides) {
803                    C = [];
804                    for (var ee = 0; ee < p.length; ee += 1) {
805                        var te = p[ee];
806                        e.roundLengths && (te = Math.floor(te)), p[ee] <= this.virtualSize - s && C.push(te);
807                    }
808                    (p = C), Math.floor(this.virtualSize - s) - Math.floor(p[p.length - 1]) > 1 && p.push(this.virtualSize - s);
809                }
810                if (
811                    (0 === p.length && (p = [0]),
812                    0 !== e.spaceBetween && (this.isHorizontal() ? (a ? d.filter(v).css({ marginLeft: w + "px" }) : d.filter(v).css({ marginRight: w + "px" })) : d.filter(v).css({ marginBottom: w + "px" })),
813                    e.centeredSlides && e.centeredSlidesBounds)
814                ) {
815                    var ie = 0;
816                    u.forEach(function (t) {
817                        ie += t + (e.spaceBetween ? e.spaceBetween : 0);
818                    });
819                    var se = (ie -= e.spaceBetween) - s;
820                    p = p.map(function (e) {
821                        return e < 0 ? -f : e > se ? se + m : e;
822                    });
823                }
824                if (e.centerInsufficientSlides) {
825                    var ae = 0;
826                    if (
827                        (u.forEach(function (t) {
828                            ae += t + (e.spaceBetween ? e.spaceBetween : 0);
829                        }),
830                        (ae -= e.spaceBetween) < s)
831                    ) {
832                        var re = (s - ae) / 2;
833                        p.forEach(function (e, t) {
834                            p[t] = e - re;
835                        }),
836                            c.forEach(function (e, t) {
837                                c[t] = e + re;
838                            });
839                    }
840                }
841                n.extend(this, { slides: d, snapGrid: p, slidesGrid: c, slidesSizesGrid: u }),
842                    h !== l && this.emit("slidesLengthChange"),
843                    p.length !== g && (this.params.watchOverflow && this.checkOverflow(), this.emit("snapGridLengthChange")),
844                    c.length !== b && this.emit("slidesGridLengthChange"),
845                    (e.watchSlidesProgress || e.watchSlidesVisibility) && this.updateSlidesOffset();
846            }
847        },
848        updateAutoHeight: function (e) {
849            var t,
850                i = [],
851                s = 0;
852            if (("number" == typeof e ? this.setTransition(e) : !0 === e && this.setTransition(this.params.speed), "auto" !== this.params.slidesPerView && this.params.slidesPerView > 1))
853                for (t = 0; t < Math.ceil(this.params.slidesPerView); t += 1) {
854                    var a = this.activeIndex + t;
855                    if (a > this.slides.length) break;
856                    i.push(this.slides.eq(a)[0]);
857                }
858            else i.push(this.slides.eq(this.activeIndex)[0]);
859            for (t = 0; t < i.length; t += 1)
860                if (void 0 !== i[t]) {
861                    var r = i[t].offsetHeight;
862                    s = r > s ? r : s;
863                }
864            s && this.$wrapperEl.css("height", s + "px");
865        },
866        updateSlidesOffset: function () {
867            for (var e = this.slides, t = 0; t < e.length; t += 1) e[t].swiperSlideOffset = this.isHorizontal() ? e[t].offsetLeft : e[t].offsetTop;
868        },
869        updateSlidesProgress: function (e) {
870            void 0 === e && (e = (this && this.translate) || 0);
871            var t = this.params,
872                i = this.slides,
873                a = this.rtlTranslate;
874            if (0 !== i.length) {
875                void 0 === i[0].swiperSlideOffset && this.updateSlidesOffset();
876                var r = -e;
877                a && (r = e), i.removeClass(t.slideVisibleClass), (this.visibleSlidesIndexes = []), (this.visibleSlides = []);
878                for (var n = 0; n < i.length; n += 1) {
879                    var o = i[n],
880                        l = (r + (t.centeredSlides ? this.minTranslate() : 0) - o.swiperSlideOffset) / (o.swiperSlideSize + t.spaceBetween);
881                    if (t.watchSlidesVisibility) {
882                        var d = -(r - o.swiperSlideOffset),
883                            h = d + this.slidesSizesGrid[n];
884                        ((d >= 0 && d < this.size - 1) || (h > 1 && h <= this.size) || (d <= 0 && h >= this.size)) && (this.visibleSlides.push(o), this.visibleSlidesIndexes.push(n), i.eq(n).addClass(t.slideVisibleClass));
885                    }
886                    o.progress = a ? -l : l;
887                }
888                this.visibleSlides = s(this.visibleSlides);
889            }
890        },
891        updateProgress: function (e) {
892            if (void 0 === e) {
893                var t = this.rtlTranslate ? -1 : 1;
894                e = (this && this.translate && this.translate * t) || 0;
895            }
896            var i = this.params,
897                s = this.maxTranslate() - this.minTranslate(),
898                a = this.progress,
899                r = this.isBeginning,
900                o = this.isEnd,
901                l = r,
902                d = o;
903            0 === s ? ((a = 0), (r = !0), (o = !0)) : ((r = (a = (e - this.minTranslate()) / s) <= 0), (o = a >= 1)),
904                n.extend(this, { progress: a, isBeginning: r, isEnd: o }),
905                (i.watchSlidesProgress || i.watchSlidesVisibility) && this.updateSlidesProgress(e),
906                r && !l && this.emit("reachBeginning toEdge"),
907                o && !d && this.emit("reachEnd toEdge"),
908                ((l && !r) || (d && !o)) && this.emit("fromEdge"),
909                this.emit("progress", a);
910        },
911        updateSlidesClasses: function () {
912            var e,
913                t = this.slides,
914                i = this.params,
915                s = this.$wrapperEl,
916                a = this.activeIndex,
917                r = this.realIndex,
918                n = this.virtual && i.virtual.enabled;
919            t.removeClass(i.slideActiveClass + " " + i.slideNextClass + " " + i.slidePrevClass + " " + i.slideDuplicateActiveClass + " " + i.slideDuplicateNextClass + " " + i.slideDuplicatePrevClass),
920                (e = n ? this.$wrapperEl.find("." + i.slideClass + '[data-swiper-slide-index="' + a + '"]') : t.eq(a)).addClass(i.slideActiveClass),
921                i.loop &&
922                    (e.hasClass(i.slideDuplicateClass)
923                        ? s.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + r + '"]').addClass(i.slideDuplicateActiveClass)
924                        : s.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + r + '"]').addClass(i.slideDuplicateActiveClass));
925            var o = e
926                .nextAll("." + i.slideClass)
927                .eq(0)
928                .addClass(i.slideNextClass);
929            i.loop && 0 === o.length && (o = t.eq(0)).addClass(i.slideNextClass);
930            var l = e
931                .prevAll("." + i.slideClass)
932                .eq(0)
933                .addClass(i.slidePrevClass);
934            i.loop && 0 === l.length && (l = t.eq(-1)).addClass(i.slidePrevClass),
935                i.loop &&
936                    (o.hasClass(i.slideDuplicateClass)
937                        ? s.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + o.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicateNextClass)
938                        : s.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + o.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicateNextClass),
939                    l.hasClass(i.slideDuplicateClass)
940                        ? s.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + l.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicatePrevClass)
941                        : s.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + l.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicatePrevClass));
942        },
943        updateActiveIndex: function (e) {
944            var t,
945                i = this.rtlTranslate ? this.translate : -this.translate,
946                s = this.slidesGrid,
947                a = this.snapGrid,
948                r = this.params,
949                o = this.activeIndex,
950                l = this.realIndex,
951                d = this.snapIndex,
952                h = e;
953            if (void 0 === h) {
954                for (var p = 0; p < s.length; p += 1) void 0 !== s[p + 1] ? (i >= s[p] && i < s[p + 1] - (s[p + 1] - s[p]) / 2 ? (h = p) : i >= s[p] && i < s[p + 1] && (h = p + 1)) : i >= s[p] && (h = p);
955                r.normalizeSlideIndex && (h < 0 || void 0 === h) && (h = 0);
956            }
957            if (a.indexOf(i) >= 0) t = a.indexOf(i);
958            else {
959                var c = Math.min(r.slidesPerGroupSkip, h);
960                t = c + Math.floor((h - c) / r.slidesPerGroup);
961            }
962            if ((t >= a.length && (t = a.length - 1), h !== o)) {
963                var u = parseInt(this.slides.eq(h).attr("data-swiper-slide-index") || h, 10);
964                n.extend(this, { snapIndex: t, realIndex: u, previousIndex: o, activeIndex: h }),
965                    this.emit("activeIndexChange"),
966                    this.emit("snapIndexChange"),
967                    l !== u && this.emit("realIndexChange"),
968                    (this.initialized || this.runCallbacksOnInit) && this.emit("slideChange");
969            } else t !== d && ((this.snapIndex = t), this.emit("snapIndexChange"));
970        },
971        updateClickedSlide: function (e) {
972            var t = this.params,
973                i = s(e.target).closest("." + t.slideClass)[0],
974                a = !1;
975            if (i) for (var r = 0; r < this.slides.length; r += 1) this.slides[r] === i && (a = !0);
976            if (!i || !a) return (this.clickedSlide = void 0), void (this.clickedIndex = void 0);
977            (this.clickedSlide = i),
978                this.virtual && this.params.virtual.enabled ? (this.clickedIndex = parseInt(s(i).attr("data-swiper-slide-index"), 10)) : (this.clickedIndex = s(i).index()),
979                t.slideToClickedSlide && void 0 !== this.clickedIndex && this.clickedIndex !== this.activeIndex && this.slideToClickedSlide();
980        },
981    };
982    var p = {
983        getTranslate: function (e) {
984            void 0 === e && (e = this.isHorizontal() ? "x" : "y");
985            var t = this.params,
986                i = this.rtlTranslate,
987                s = this.translate,
988                a = this.$wrapperEl;
989            if (t.virtualTranslate) return i ? -s : s;
990            if (t.cssMode) return s;
991            var r = n.getTranslate(a[0], e);
992            return i && (r = -r), r || 0;
993        },
994        setTranslate: function (e, t) {
995            var i = this.rtlTranslate,
996                s = this.params,
997                a = this.$wrapperEl,
998                r = this.wrapperEl,
999                n = this.progress,
1000                o = 0,
1001                l = 0;
1002            this.isHorizontal() ? (o = i ? -e : e) : (l = e),
1003                s.roundLengths && ((o = Math.floor(o)), (l = Math.floor(l))),
1004                s.cssMode ? (r[this.isHorizontal() ? "scrollLeft" : "scrollTop"] = this.isHorizontal() ? -o : -l) : s.virtualTranslate || a.transform("translate3d(" + o + "px, " + l + "px, 0px)"),
1005                (this.previousTranslate = this.translate),
1006                (this.translate = this.isHorizontal() ? o : l);
1007            var d = this.maxTranslate() - this.minTranslate();
1008            (0 === d ? 0 : (e - this.minTranslate()) / d) !== n && this.updateProgress(e), this.emit("setTranslate", this.translate, t);
1009        },
1010        minTranslate: function () {
1011            return -this.snapGrid[0];
1012        },
1013        maxTranslate: function () {
1014            return -this.snapGrid[this.snapGrid.length - 1];
1015        },
1016        translateTo: function (e, t, i, s, a) {
1017            var r;
1018            void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === i && (i = !0), void 0 === s && (s = !0);
1019            var n = this,
1020                o = n.params,
1021                l = n.wrapperEl;
1022            if (n.animating && o.preventInteractionOnTransition) return !1;
1023            var d,
1024                h = n.minTranslate(),
1025                p = n.maxTranslate();
1026            if (((d = s && e > h ? h : s && e < p ? p : e), n.updateProgress(d), o.cssMode)) {
1027                var c = n.isHorizontal();
1028                return 0 === t ? (l[c ? "scrollLeft" : "scrollTop"] = -d) : l.scrollTo ? l.scrollTo((((r = {})[c ? "left" : "top"] = -d), (r.behavior = "smooth"), r)) : (l[c ? "scrollLeft" : "scrollTop"] = -d), !0;
1029            }
1030            return (
1031                0 === t
1032                    ? (n.setTransition(0), n.setTranslate(d), i && (n.emit("beforeTransitionStart", t, a), n.emit("transitionEnd")))
1033                    : (n.setTransition(t),
1034                      n.setTranslate(d),
1035                      i && (n.emit("beforeTransitionStart", t, a), n.emit("transitionStart")),
1036                      n.animating ||
1037                          ((n.animating = !0),
1038                          n.onTranslateToWrapperTransitionEnd ||
1039                              (n.onTranslateToWrapperTransitionEnd = function (e) {
1040                                  n &&
1041                                      !n.destroyed &&
1042                                      e.target === this &&
1043                                      (n.$wrapperEl[0].removeEventListener("transitionend", n.onTranslateToWrapperTransitionEnd),
1044                                      n.$wrapperEl[0].removeEventListener("webkitTransitionEnd", n.onTranslateToWrapperTransitionEnd),
1045                                      (n.onTranslateToWrapperTransitionEnd = null),
1046                                      delete n.onTranslateToWrapperTransitionEnd,
1047                                      i && n.emit("transitionEnd"));
1048                              }),
1049                          n.$wrapperEl[0].addEventListener("transitionend", n.onTranslateToWrapperTransitionEnd),
1050                          n.$wrapperEl[0].addEventListener("webkitTransitionEnd", n.onTranslateToWrapperTransitionEnd))),
1051                !0
1052            );
1053        },
1054    };
1055    var c = {
1056        setTransition: function (e, t) {
1057            this.params.cssMode || this.$wrapperEl.transition(e), this.emit("setTransition", e, t);
1058        },
1059        transitionStart: function (e, t) {
1060            void 0 === e && (e = !0);
1061            var i = this.activeIndex,
1062                s = this.params,
1063                a = this.previousIndex;
1064            if (!s.cssMode) {
1065                s.autoHeight && this.updateAutoHeight();
1066                var r = t;
1067                if ((r || (r = i > a ? "next" : i < a ? "prev" : "reset"), this.emit("transitionStart"), e && i !== a)) {
1068                    if ("reset" === r) return void this.emit("slideResetTransitionStart");
1069                    this.emit("slideChangeTransitionStart"), "next" === r ? this.emit("slideNextTransitionStart") : this.emit("slidePrevTransitionStart");
1070                }
1071            }
1072        },
1073        transitionEnd: function (e, t) {
1074            void 0 === e && (e = !0);
1075            var i = this.activeIndex,
1076                s = this.previousIndex,
1077                a = this.params;
1078            if (((this.animating = !1), !a.cssMode)) {
1079                this.setTransition(0);
1080                var r = t;
1081                if ((r || (r = i > s ? "next" : i < s ? "prev" : "reset"), this.emit("transitionEnd"), e && i !== s)) {
1082                    if ("reset" === r) return void this.emit("slideResetTransitionEnd");
1083                    this.emit("slideChangeTransitionEnd"), "next" === r ? this.emit("slideNextTransitionEnd") : this.emit("slidePrevTransitionEnd");
1084                }
1085            }
1086        },
1087    };
1088    var u = {
1089        slideTo: function (e, t, i, s) {
1090            var a;
1091            void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === i && (i = !0);
1092            var r = this,
1093                n = e;
1094            n < 0 && (n = 0);
1095            var o = r.params,
1096                l = r.snapGrid,
1097                d = r.slidesGrid,
1098                h = r.previousIndex,
1099                p = r.activeIndex,
1100                c = r.rtlTranslate,
1101                u = r.wrapperEl;
1102            if (r.animating && o.preventInteractionOnTransition) return !1;
1103            var v = Math.min(r.params.slidesPerGroupSkip, n),
1104                f = v + Math.floor((n - v) / r.params.slidesPerGroup);
1105            f >= l.length && (f = l.length - 1), (p || o.initialSlide || 0) === (h || 0) && i && r.emit("beforeSlideChangeStart");
1106            var m,
1107                g = -l[f];
1108            if ((r.updateProgress(g), o.normalizeSlideIndex)) for (var b = 0; b < d.length; b += 1) -Math.floor(100 * g) >= Math.floor(100 * d[b]) && (n = b);
1109            if (r.initialized && n !== p) {
1110                if (!r.allowSlideNext && g < r.translate && g < r.minTranslate()) return !1;
1111                if (!r.allowSlidePrev && g > r.translate && g > r.maxTranslate() && (p || 0) !== n) return !1;
1112            }
1113            if (((m = n > p ? "next" : n < p ? "prev" : "reset"), (c && -g === r.translate) || (!c && g === r.translate)))
1114                return r.updateActiveIndex(n), o.autoHeight && r.updateAutoHeight(), r.updateSlidesClasses(), "slide" !== o.effect && r.setTranslate(g), "reset" !== m && (r.transitionStart(i, m), r.transitionEnd(i, m)), !1;
1115            if (o.cssMode) {
1116                var w = r.isHorizontal();
1117                return 0 === t ? (u[w ? "scrollLeft" : "scrollTop"] = -g) : u.scrollTo ? u.scrollTo((((a = {})[w ? "left" : "top"] = -g), (a.behavior = "smooth"), a)) : (u[w ? "scrollLeft" : "scrollTop"] = -g), !0;
1118            }
1119            return (
1120                0 === t
1121                    ? (r.setTransition(0), r.setTranslate(g), r.updateActiveIndex(n), r.updateSlidesClasses(), r.emit("beforeTransitionStart", t, s), r.transitionStart(i, m), r.transitionEnd(i, m))
1122                    : (r.setTransition(t),
1123                      r.setTranslate(g),
1124                      r.updateActiveIndex(n),
1125                      r.updateSlidesClasses(),
1126                      r.emit("beforeTransitionStart", t, s),
1127                      r.transitionStart(i, m),
1128                      r.animating ||
1129                          ((r.animating = !0),
1130                          r.onSlideToWrapperTransitionEnd ||
1131                              (r.onSlideToWrapperTransitionEnd = function (e) {
1132                                  r &&
1133                                      !r.destroyed &&
1134                                      e.target === this &&
1135                                      (r.$wrapperEl[0].removeEventListener("transitionend", r.onSlideToWrapperTransitionEnd),
1136                                      r.$wrapperEl[0].removeEventListener("webkitTransitionEnd", r.onSlideToWrapperTransitionEnd),
1137                                      (r.onSlideToWrapperTransitionEnd = null),
1138                                      delete r.onSlideToWrapperTransitionEnd,
1139                                      r.transitionEnd(i, m));
1140                              }),
1141                          r.$wrapperEl[0].addEventListener("transitionend", r.onSlideToWrapperTransitionEnd),
1142                          r.$wrapperEl[0].addEventListener("webkitTransitionEnd", r.onSlideToWrapperTransitionEnd))),
1143                !0
1144            );
1145        },
1146        slideToLoop: function (e, t, i, s) {
1147            void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === i && (i = !0);
1148            var a = e;
1149            return this.params.loop && (a += this.loopedSlides), this.slideTo(a, t, i, s);
1150        },
1151        slideNext: function (e, t, i) {
1152            void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
1153            var s = this.params,
1154                a = this.animating,
1155                r = this.activeIndex < s.slidesPerGroupSkip ? 1 : s.slidesPerGroup;
1156            if (s.loop) {
1157                if (a) return !1;
1158                this.loopFix(), (this._clientLeft = this.$wrapperEl[0].clientLeft);
1159            }
1160            return this.slideTo(this.activeIndex + r, e, t, i);
1161        },
1162        slidePrev: function (e, t, i) {
1163            void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
1164            var s = this.params,
1165                a = this.animating,
1166                r = this.snapGrid,
1167                n = this.slidesGrid,
1168                o = this.rtlTranslate;
1169            if (s.loop) {
1170                if (a) return !1;
1171                this.loopFix(), (this._clientLeft = this.$wrapperEl[0].clientLeft);
1172            }
1173            function l(e) {
1174                return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e);
1175            }
1176            var d,
1177                h = l(o ? this.translate : -this.translate),
1178                p = r.map(function (e) {
1179                    return l(e);
1180                }),
1181                c =
1182                    (n.map(function (e) {
1183                        return l(e);
1184                    }),
1185                    r[p.indexOf(h)],
1186                    r[p.indexOf(h) - 1]);
1187            return (
1188                void 0 === c &&
1189                    s.cssMode &&
1190                    r.forEach(function (e) {
1191                        !c && h >= e && (c = e);
1192                    }),
1193                void 0 !== c && (d = n.indexOf(c)) < 0 && (d = this.activeIndex - 1),
1194                this.slideTo(d, e, t, i)
1195            );
1196        },
1197        slideReset: function (e, t, i) {
1198            return void 0 === e && (e = this.params.speed), void 0 === t && (t = !0), this.slideTo(this.activeIndex, e, t, i);
1199        },
1200        slideToClosest: function (e, t, i, s) {
1201            void 0 === e && (e = this.params.speed), void 0 === t && (t = !0), void 0 === s && (s = 0.5);
1202            var a = this.activeIndex,
1203                r = Math.min(this.params.slidesPerGroupSkip, a),
1204                n = r + Math.floor((a - r) / this.params.slidesPerGroup),
1205                o = this.rtlTranslate ? this.translate : -this.translate;
1206            if (o >= this.snapGrid[n]) {
1207                var l = this.snapGrid[n];
1208                o - l > (this.snapGrid[n + 1] - l) * s && (a += this.params.slidesPerGroup);
1209            } else {
1210                var d = this.snapGrid[n - 1];
1211                o - d <= (this.snapGrid[n] - d) * s && (a -= this.params.slidesPerGroup);
1212            }
1213            return (a = Math.max(a, 0)), (a = Math.min(a, this.slidesGrid.length - 1)), this.slideTo(a, e, t, i);
1214        },
1215        slideToClickedSlide: function () {
1216            var e,
1217                t = this,
1218                i = t.params,
1219                a = t.$wrapperEl,
1220                r = "auto" === i.slidesPerView ? t.slidesPerViewDynamic() : i.slidesPerView,
1221                o = t.clickedIndex;
1222            if (i.loop) {
1223                if (t.animating) return;
1224                (e = parseInt(s(t.clickedSlide).attr("data-swiper-slide-index"), 10)),
1225                    i.centeredSlides
1226                        ? o < t.loopedSlides - r / 2 || o > t.slides.length - t.loopedSlides + r / 2
1227                            ? (t.loopFix(),
1228                              (o = a
1229                                  .children("." + i.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + i.slideDuplicateClass + ")")
1230                                  .eq(0)
1231                                  .index()),
1232                              n.nextTick(function () {
1233                                  t.slideTo(o);
1234                              }))
1235                            : t.slideTo(o)
1236                        : o > t.slides.length - r
1237                        ? (t.loopFix(),
1238                          (o = a
1239                              .children("." + i.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + i.slideDuplicateClass + ")")
1240                              .eq(0)
1241                              .index()),
1242                          n.nextTick(function () {
1243                              t.slideTo(o);
1244                          }))
1245                        : t.slideTo(o);
1246            } else t.slideTo(o);
1247        },
1248    };
1249    var v = {
1250        loopCreate: function () {
1251            var t = this,
1252                i = t.params,
1253                a = t.$wrapperEl;
1254            a.children("." + i.slideClass + "." + i.slideDuplicateClass).remove();
1255            var r = a.children("." + i.slideClass);
1256            if (i.loopFillGroupWithBlank) {
1257                var n = i.slidesPerGroup - (r.length % i.slidesPerGroup);
1258                if (n !== i.slidesPerGroup) {
1259                    for (var o = 0; o < n; o += 1) {
1260                        var l = s(e.createElement("div")).addClass(i.slideClass + " " + i.slideBlankClass);
1261                        a.append(l);
1262                    }
1263                    r = a.children("." + i.slideClass);
1264                }
1265            }
1266            "auto" !== i.slidesPerView || i.loopedSlides || (i.loopedSlides = r.length),
1267                (t.loopedSlides = Math.ceil(parseFloat(i.loopedSlides || i.slidesPerView, 10))),
1268                (t.loopedSlides += i.loopAdditionalSlides),
1269                t.loopedSlides > r.length && (t.loopedSlides = r.length);
1270            var d = [],
1271                h = [];
1272            r.each(function (e, i) {
1273                var a = s(i);
1274                e < t.loopedSlides && h.push(i), e < r.length && e >= r.length - t.loopedSlides && d.push(i), a.attr("data-swiper-slide-index", e);
1275            });
1276            for (var p = 0; p < h.length; p += 1) a.append(s(h[p].cloneNode(!0)).addClass(i.slideDuplicateClass));
1277            for (var c = d.length - 1; c >= 0; c -= 1) a.prepend(s(d[c].cloneNode(!0)).addClass(i.slideDuplicateClass));
1278        },
1279        loopFix: function () {
1280            this.emit("beforeLoopFix");
1281            var e,
1282                t = this.activeIndex,
1283                i = this.slides,
1284                s = this.loopedSlides,
1285                a = this.allowSlidePrev,
1286                r = this.allowSlideNext,
1287                n = this.snapGrid,
1288                o = this.rtlTranslate;
1289            (this.allowSlidePrev = !0), (this.allowSlideNext = !0);
1290            var l = -n[t] - this.getTranslate();
1291            if (t < s) (e = i.length - 3 * s + t), (e += s), this.slideTo(e, 0, !1, !0) && 0 !== l && this.setTranslate((o ? -this.translate : this.translate) - l);
1292            else if (t >= i.length - s) {
1293                (e = -i.length + t + s), (e += s), this.slideTo(e, 0, !1, !0) && 0 !== l && this.setTranslate((o ? -this.translate : this.translate) - l);
1294            }
1295            (this.allowSlidePrev = a), (this.allowSlideNext = r), this.emit("loopFix");
1296        },
1297        loopDestroy: function () {
1298            var e = this.$wrapperEl,
1299                t = this.params,
1300                i = this.slides;
1301            e.children("." + t.slideClass + "." + t.slideDuplicateClass + ",." + t.slideClass + "." + t.slideBlankClass).remove(), i.removeAttr("data-swiper-slide-index");
1302        },
1303    };
1304    var f = {
1305        setGrabCursor: function (e) {
1306            if (!(o.touch || !this.params.simulateTouch || (this.params.watchOverflow && this.isLocked) || this.params.cssMode)) {
1307                var t = this.el;
1308                (t.style.cursor = "move"), (t.style.cursor = e ? "-webkit-grabbing" : "-webkit-grab"), (t.style.cursor = e ? "-moz-grabbin" : "-moz-grab"), (t.style.cursor = e ? "grabbing" : "grab");
1309            }
1310        },
1311        unsetGrabCursor: function () {
1312            o.touch || (this.params.watchOverflow && this.isLocked) || this.params.cssMode || (this.el.style.cursor = "");
1313        },
1314    };
1315    var m,
1316        g,
1317        b,
1318        w,
1319        y,
1320        x,
1321        T,
1322        E,
1323        S,
1324        C,
1325        M,
1326        P,
1327        z,
1328        k,
1329        $,
1330        L = {
1331            appendSlide: function (e) {
1332                var t = this.$wrapperEl,
1333                    i = this.params;
1334                if ((i.loop && this.loopDestroy(), "object" == typeof e && "length" in e)) for (var s = 0; s < e.length; s += 1) e[s] && t.append(e[s]);
1335                else t.append(e);
1336                i.loop && this.loopCreate(), (i.observer && o.observer) || this.update();
1337            },
1338            prependSlide: function (e) {
1339                var t = this.params,
1340                    i = this.$wrapperEl,
1341                    s = this.activeIndex;
1342                t.loop && this.loopDestroy();
1343                var a = s + 1;
1344                if ("object" == typeof e && "length" in e) {
1345                    for (var r = 0; r < e.length; r += 1) e[r] && i.prepend(e[r]);
1346                    a = s + e.length;
1347                } else i.prepend(e);
1348                t.loop && this.loopCreate(), (t.observer && o.observer) || this.update(), this.slideTo(a, 0, !1);
1349            },
1350            addSlide: function (e, t) {
1351                var i = this.$wrapperEl,
1352                    s = this.params,
1353                    a = this.activeIndex;
1354                s.loop && ((a -= this.loopedSlides), this.loopDestroy(), (this.slides = i.children("." + s.slideClass)));
1355                var r = this.slides.length;
1356                if (e <= 0) this.prependSlide(t);
1357                else if (e >= r) this.appendSlide(t);
1358                else {
1359                    for (var n = a > e ? a + 1 : a, l = [], d = r - 1; d >= e; d -= 1) {
1360                        var h = this.slides.eq(d);
1361                        h.remove(), l.unshift(h);
1362                    }
1363                    if ("object" == typeof t && "length" in t) {
1364                        for (var p = 0; p < t.length; p += 1) t[p] && i.append(t[p]);
1365                        n = a > e ? a + t.length : a;
1366                    } else i.append(t);
1367                    for (var c = 0; c < l.length; c += 1) i.append(l[c]);
1368                    s.loop && this.loopCreate(), (s.observer && o.observer) || this.update(), s.loop ? this.slideTo(n + this.loopedSlides, 0, !1) : this.slideTo(n, 0, !1);
1369                }
1370            },
1371            removeSlide: function (e) {
1372                var t = this.params,
1373                    i = this.$wrapperEl,
1374                    s = this.activeIndex;
1375                t.loop && ((s -= this.loopedSlides), this.loopDestroy(), (this.slides = i.children("." + t.slideClass)));
1376                var a,
1377                    r = s;
1378                if ("object" == typeof e && "length" in e) {
1379                    for (var n = 0; n < e.length; n += 1) (a = e[n]), this.slides[a] && this.slides.eq(a).remove(), a < r && (r -= 1);
1380                    r = Math.max(r, 0);
1381                } else (a = e), this.slides[a] && this.slides.eq(a).remove(), a < r && (r -= 1), (r = Math.max(r, 0));
1382                t.loop && this.loopCreate(), (t.observer && o.observer) || this.update(), t.loop ? this.slideTo(r + this.loopedSlides, 0, !1) : this.slideTo(r, 0, !1);
1383            },
1384            removeAllSlides: function () {
1385                for (var e = [], t = 0; t < this.slides.length; t += 1) e.push(t);
1386                this.removeSlide(e);
1387            },
1388        },
1389        I =
1390            ((m = t.navigator.platform),
1391            (g = t.navigator.userAgent),
1392            (b = {
1393                ios: !1,
1394                android: !1,
1395                androidChrome: !1,
1396                desktop: !1,
1397                iphone: !1,
1398                ipod: !1,
1399                ipad: !1,
1400                edge: !1,
1401                ie: !1,
1402                firefox: !1,
1403                macos: !1,
1404                windows: !1,
1405                cordova: !(!t.cordova && !t.phonegap),
1406                phonegap: !(!t.cordova && !t.phonegap),
1407                electron: !1,
1408            }),
1409            (w = t.screen.width),
1410            (y = t.screen.height),
1411            (x = g.match(/(Android);?[\s\/]+([\d.]+)?/)),
1412            (T = g.match(/(iPad).*OS\s([\d_]+)/)),
1413            (E = g.match(/(iPod)(.*OS\s([\d_]+))?/)),
1414            (S = !T && g.match(/(iPhone\sOS|iOS)\s([\d_]+)/)),
1415            (C = g.indexOf("MSIE ") >= 0 || g.indexOf("Trident/") >= 0),
1416            (M = g.indexOf("Edge/") >= 0),
1417            (P = g.indexOf("Gecko/") >= 0 && g.indexOf("Firefox/") >= 0),
1418            (z = "Win32" === m),
1419            (k = g.toLowerCase().indexOf("electron") >= 0),
1420            ($ = "MacIntel" === m),
1421            !T && $ && o.touch && ((1024 === w && 1366 === y) || (834 === w && 1194 === y) || (834 === w && 1112 === y) || (768 === w && 1024 === y)) && ((T = g.match(/(Version)\/([\d.]+)/)), ($ = !1)),
1422            (b.ie = C),
1423            (b.edge = M),
1424            (b.firefox = P),
1425            x && !z && ((b.os = "android"), (b.osVersion = x[2]), (b.android = !0), (b.androidChrome = g.toLowerCase().indexOf("chrome") >= 0)),
1426            (T || S || E) && ((b.os = "ios"), (b.ios = !0)),
1427            S && !E && ((b.osVersion = S[2].replace(/_/g, ".")), (b.iphone = !0)),
1428            T && ((b.osVersion = T[2].replace(/_/g, ".")), (b.ipad = !0)),
1429            E && ((b.osVersion = E[3] ? E[3].replace(/_/g, ".") : null), (b.ipod = !0)),
1430            b.ios && b.osVersion && g.indexOf("Version/") >= 0 && "10" === b.osVersion.split(".")[0] && (b.osVersion = g.toLowerCase().split("version/")[1].split(" ")[0]),
1431            (b.webView = !(!(S || T || E) || (!g.match(/.*AppleWebKit(?!.*Safari)/i) && !t.navigator.standalone)) || (t.matchMedia && t.matchMedia("(display-mode: standalone)").matches)),
1432            (b.webview = b.webView),
1433            (b.standalone = b.webView),
1434            (b.desktop = !(b.ios || b.android) || k),
1435            b.desktop && ((b.electron = k), (b.macos = $), (b.windows = z), b.macos && (b.os = "macos"), b.windows && (b.os = "windows")),
1436            (b.pixelRatio = t.devicePixelRatio || 1),
1437            b);
1438    function D(i) {
1439        var a = this.touchEventsData,
1440            r = this.params,
1441            o = this.touches;
1442        if (!this.animating || !r.preventInteractionOnTransition) {
1443            var l = i;
1444            l.originalEvent && (l = l.originalEvent);
1445            var d = s(l.target);
1446            if (
1447                ("wrapper" !== r.touchEventsTarget || d.closest(this.wrapperEl).length) &&
1448                ((a.isTouchEvent = "touchstart" === l.type), (a.isTouchEvent || !("which" in l) || 3 !== l.which) && !((!a.isTouchEvent && "button" in l && l.button > 0) || (a.isTouched && a.isMoved)))
1449            )
1450                if (r.noSwiping && d.closest(r.noSwipingSelector ? r.noSwipingSelector : "." + r.noSwipingClass)[0]) this.allowClick = !0;
1451                else if (!r.swipeHandler || d.closest(r.swipeHandler)[0]) {
1452                    (o.currentX = "touchstart" === l.type ? l.targetTouches[0].pageX : l.pageX), (o.currentY = "touchstart" === l.type ? l.targetTouches[0].pageY : l.pageY);
1453                    var h = o.currentX,
1454                        p = o.currentY,
1455                        c = r.edgeSwipeDetection || r.iOSEdgeSwipeDetection,
1456                        u = r.edgeSwipeThreshold || r.iOSEdgeSwipeThreshold;
1457                    if (!c || !(h <= u || h >= t.screen.width - u)) {
1458                        if (
1459                            (n.extend(a, { isTouched: !0, isMoved: !1, allowTouchCallbacks: !0, isScrolling: void 0, startMoving: void 0 }),
1460                            (o.startX = h),
1461                            (o.startY = p),
1462                            (a.touchStartTime = n.now()),
1463                            (this.allowClick = !0),
1464                            this.updateSize(),
1465                            (this.swipeDirection = void 0),
1466                            r.threshold > 0 && (a.allowThresholdMove = !1),
1467                            "touchstart" !== l.type)
1468                        ) {
1469                            var v = !0;
1470                            d.is(a.formElements) && (v = !1), e.activeElement && s(e.activeElement).is(a.formElements) && e.activeElement !== d[0] && e.activeElement.blur();
1471                            var f = v && this.allowTouchMove && r.touchStartPreventDefault;
1472                            (r.touchStartForcePreventDefault || f) && l.preventDefault();
1473                        }
1474                        this.emit("touchStart", l);
1475                    }
1476                }
1477        }
1478    }
1479    function O(t) {
1480        var i = this.touchEventsData,
1481            a = this.params,
1482            r = this.touches,
1483            o = this.rtlTranslate,
1484            l = t;
1485        if ((l.originalEvent && (l = l.originalEvent), i.isTouched)) {
1486            if (!i.isTouchEvent || "mousemove" !== l.type) {
1487                var d = "touchmove" === l.type && l.targetTouches && (l.targetTouches[0] || l.changedTouches[0]),
1488                    h = "touchmove" === l.type ? d.pageX : l.pageX,
1489                    p = "touchmove" === l.type ? d.pageY : l.pageY;
1490                if (l.preventedByNestedSwiper) return (r.startX = h), void (r.startY = p);
1491                if (!this.allowTouchMove) return (this.allowClick = !1), void (i.isTouched && (n.extend(r, { startX: h, startY: p, currentX: h, currentY: p }), (i.touchStartTime = n.now())));
1492                if (i.isTouchEvent && a.touchReleaseOnEdges && !a.loop)
1493                    if (this.isVertical()) {
1494                        if ((p < r.startY && this.translate <= this.maxTranslate()) || (p > r.startY && this.translate >= this.minTranslate())) return (i.isTouched = !1), void (i.isMoved = !1);
1495                    } else if ((h < r.startX && this.translate <= this.maxTranslate()) || (h > r.startX && this.translate >= this.minTranslate())) return;
1496                if (i.isTouchEvent && e.activeElement && l.target === e.activeElement && s(l.target).is(i.formElements)) return (i.isMoved = !0), void (this.allowClick = !1);
1497                if ((i.allowTouchCallbacks && this.emit("touchMove", l), !(l.targetTouches && l.targetTouches.length > 1))) {
1498                    (r.currentX = h), (r.currentY = p);
1499                    var c = r.currentX - r.startX,
1500                        u = r.currentY - r.startY;
1501                    if (!(this.params.threshold && Math.sqrt(Math.pow(c, 2) + Math.pow(u, 2)) < this.params.threshold)) {
1502                        var v;
1503                        if (void 0 === i.isScrolling)
1504                            (this.isHorizontal() && r.currentY === r.startY) || (this.isVertical() && r.currentX === r.startX)
1505                                ? (i.isScrolling = !1)
1506                                : c * c + u * u >= 25 && ((v = (180 * Math.atan2(Math.abs(u), Math.abs(c))) / Math.PI), (i.isScrolling = this.isHorizontal() ? v > a.touchAngle : 90 - v > a.touchAngle));
1507                        if ((i.isScrolling && this.emit("touchMoveOpposite", l), void 0 === i.startMoving && ((r.currentX === r.startX && r.currentY === r.startY) || (i.startMoving = !0)), i.isScrolling)) i.isTouched = !1;
1508                        else if (i.startMoving) {
1509                            (this.allowClick = !1),
1510                                a.cssMode || l.preventDefault(),
1511                                a.touchMoveStopPropagation && !a.nested && l.stopPropagation(),
1512                                i.isMoved ||
1513                                    (a.loop && this.loopFix(),
1514                                    (i.startTranslate = this.getTranslate()),
1515                                    this.setTransition(0),
1516                                    this.animating && this.$wrapperEl.trigger("webkitTransitionEnd transitionend"),
1517                                    (i.allowMomentumBounce = !1),
1518                                    !a.grabCursor || (!0 !== this.allowSlideNext && !0 !== this.allowSlidePrev) || this.setGrabCursor(!0),
1519                                    this.emit("sliderFirstMove", l)),
1520                                this.emit("sliderMove", l),
1521                                (i.isMoved = !0);
1522                            var f = this.isHorizontal() ? c : u;
1523                            (r.diff = f), (f *= a.touchRatio), o && (f = -f), (this.swipeDirection = f > 0 ? "prev" : "next"), (i.currentTranslate = f + i.startTranslate);
1524                            var m = !0,
1525                                g = a.resistanceRatio;
1526                            if (
1527                                (a.touchReleaseOnEdges && (g = 0),
1528                                f > 0 && i.currentTranslate > this.minTranslate()
1529                                    ? ((m = !1), a.resistance && (i.currentTranslate = this.minTranslate() - 1 + Math.pow(-this.minTranslate() + i.startTranslate + f, g)))
1530                                    : f < 0 && i.currentTranslate < this.maxTranslate() && ((m = !1), a.resistance && (i.currentTranslate = this.maxTranslate() + 1 - Math.pow(this.maxTranslate() - i.startTranslate - f, g))),
1531                                m && (l.preventedByNestedSwiper = !0),
1532                                !this.allowSlideNext && "next" === this.swipeDirection && i.currentTranslate < i.startTranslate && (i.currentTranslate = i.startTranslate),
1533                                !this.allowSlidePrev && "prev" === this.swipeDirection && i.currentTranslate > i.startTranslate && (i.currentTranslate = i.startTranslate),
1534                                a.threshold > 0)
1535                            ) {
1536                                if (!(Math.abs(f) > a.threshold || i.allowThresholdMove)) return void (i.currentTranslate = i.startTranslate);
1537                                if (!i.allowThresholdMove)
1538                                    return (
1539                                        (i.allowThresholdMove = !0),
1540                                        (r.startX = r.currentX),
1541                                        (r.startY = r.currentY),
1542                                        (i.currentTranslate = i.startTranslate),
1543                                        void (r.diff = this.isHorizontal() ? r.currentX - r.startX : r.currentY - r.startY)
1544                                    );
1545                            }
1546                            a.followFinger &&
1547                                !a.cssMode &&
1548                                ((a.freeMode || a.watchSlidesProgress || a.watchSlidesVisibility) && (this.updateActiveIndex(), this.updateSlidesClasses()),
1549                                a.freeMode &&
1550                                    (0 === i.velocities.length && i.velocities.push({ position: r[this.isHorizontal() ? "startX" : "startY"], time: i.touchStartTime }),
1551                                    i.velocities.push({ position: r[this.isHorizontal() ? "currentX" : "currentY"], time: n.now() })),
1552                                this.updateProgress(i.currentTranslate),
1553                                this.setTranslate(i.currentTranslate));
1554                        }
1555                    }
1556                }
1557            }
1558        }
1558 else i.startMoving && i.isScrolling && this.emit("touchMoveOpposite", l);
1559    }
1560    function A(e) {
1561        var t = this,
1562            i = t.touchEventsData,
1563            s = t.params,
1564            a = t.touches,
1565            r = t.rtlTranslate,
1566            o = t.$wrapperEl,
1567            l = t.slidesGrid,
1568            d = t.snapGrid,
1569            h = e;
1570        if ((h.originalEvent && (h = h.originalEvent), i.allowTouchCallbacks && t.emit("touchEnd", h), (i.allowTouchCallbacks = !1), !i.isTouched))
1571            return i.isMoved && s.grabCursor && t.setGrabCursor(!1), (i.isMoved = !1), void (i.startMoving = !1);
1572        s.grabCursor && i.isMoved && i.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1);
1573        var p,
1574            c = n.now(),
1575            u = c - i.touchStartTime;
1576        if (
1577            (t.allowClick && (t.updateClickedSlide(h), t.emit("tap click", h), u < 300 && c - i.lastClickTime < 300 && t.emit("doubleTap doubleClick", h)),
1578            (i.lastClickTime = n.now()),
1579            n.nextTick(function () {
1580                t.destroyed || (t.allowClick = !0);
1581            }),
1582            !i.isTouched || !i.isMoved || !t.swipeDirection || 0 === a.diff || i.currentTranslate === i.startTranslate)
1583        )
1584            return (i.isTouched = !1), (i.isMoved = !1), void (i.startMoving = !1);
1585        if (((i.isTouched = !1), (i.isMoved = !1), (i.startMoving = !1), (p = s.followFinger ? (r ? t.translate : -t.translate) : -i.currentTranslate), !s.cssMode))
1586            if (s.freeMode) {
1587                if (p < -t.minTranslate()) return void t.slideTo(t.activeIndex);
1588                if (p > -t.maxTranslate()) return void (t.slides.length < d.length ? t.slideTo(d.length - 1) : t.slideTo(t.slides.length - 1));
1589                if (s.freeModeMomentum) {
1590                    if (i.velocities.length > 1) {
1591                        var v = i.velocities.pop(),
1592                            f = i.velocities.pop(),
1593                            m = v.position - f.position,
1594                            g = v.time - f.time;
1595                        (t.velocity = m / g), (t.velocity /= 2), Math.abs(t.velocity) < s.freeModeMinimumVelocity && (t.velocity = 0), (g > 150 || n.now() - v.time > 300) && (t.velocity = 0);
1596                    } else t.velocity = 0;
1597                    (t.velocity *= s.freeModeMomentumVelocityRatio), (i.velocities.length = 0);
1598                    var b = 1e3 * s.freeModeMomentumRatio,
1599                        w = t.velocity * b,
1600                        y = t.translate + w;
1601                    r && (y = -y);
1602                    var x,
1603                        T,
1604                        E = !1,
1605                        S = 20 * Math.abs(t.velocity) * s.freeModeMomentumBounceRatio;
1606                    if (y < t.maxTranslate())
1607                        s.freeModeMomentumBounce ? (y + t.maxTranslate() < -S && (y = t.maxTranslate() - S), (x = t.maxTranslate()), (E = !0), (i.allowMomentumBounce = !0)) : (y = t.maxTranslate()), s.loop && s.centeredSlides && (T = !0);
1608                    else if (y > t.minTranslate())
1609                        s.freeModeMomentumBounce ? (y - t.minTranslate() > S && (y = t.minTranslate() + S), (x = t.minTranslate()), (E = !0), (i.allowMomentumBounce = !0)) : (y = t.minTranslate()), s.loop && s.centeredSlides && (T = !0);
1610                    else if (s.freeModeSticky) {
1611                        for (var C, M = 0; M < d.length; M += 1)
1612                            if (d[M] > -y) {
1613                                C = M;
1614                                break;
1615                            }
1616                        y = -(y = Math.abs(d[C] - y) < Math.abs(d[C - 1] - y) || "next" === t.swipeDirection ? d[C] : d[C - 1]);
1617                    }
1618                    if (
1619                        (T &&
1620                            t.once("transitionEnd", function () {
1621                                t.loopFix();
1622                            }),
1623                        0 !== t.velocity)
1624                    ) {
1625                        if (((b = r ? Math.abs((-y - t.translate) / t.velocity) : Math.abs((y - t.translate) / t.velocity)), s.freeModeSticky)) {
1626                            var P = Math.abs((r ? -y : y) - t.translate),
1627                                z = t.slidesSizesGrid[t.activeIndex];
1628                            b = P < z ? s.speed : P < 2 * z ? 1.5 * s.speed : 2.5 * s.speed;
1629                        }
1630                    } else if (s.freeModeSticky) return void t.slideToClosest();
1631                    s.freeModeMomentumBounce && E
1632                        ? (t.updateProgress(x),
1633                          t.setTransition(b),
1634                          t.setTranslate(y),
1635                          t.transitionStart(!0, t.swipeDirection),
1636                          (t.animating = !0),
1637                          o.transitionEnd(function () {
1638                              t &&
1639                                  !t.destroyed &&
1640                                  i.allowMomentumBounce &&
1641                                  (t.emit("momentumBounce"),
1642                                  t.setTransition(s.speed),
1643                                  t.setTranslate(x),
1644                                  o.transitionEnd(function () {
1645                                      t && !t.destroyed && t.transitionEnd();
1646                                  }));
1647                          }))
1648                        : t.velocity
1649                        ? (t.updateProgress(y),
1650                          t.setTransition(b),
1651                          t.setTranslate(y),
1652                          t.transitionStart(!0, t.swipeDirection),
1653                          t.animating ||
1654                              ((t.animating = !0),
1655                              o.transitionEnd(function () {
1656                                  t && !t.destroyed && t.transitionEnd();
1657                              })))
1658                        : t.updateProgress(y),
1659                        t.updateActiveIndex(),
1660                        t.updateSlidesClasses();
1661                } else if (s.freeModeSticky) return void t.slideToClosest();
1662                (!s.freeModeMomentum || u >= s.longSwipesMs) && (t.updateProgress(), t.updateActiveIndex(), t.updateSlidesClasses());
1663            } else {
1664                for (var k = 0, $ = t.slidesSizesGrid[0], L = 0; L < l.length; L += L < s.slidesPerGroupSkip ? 1 : s.slidesPerGroup) {
1665                    var I = L < s.slidesPerGroupSkip - 1 ? 1 : s.slidesPerGroup;
1666                    void 0 !== l[L + I] ? p >= l[L] && p < l[L + I] && ((k = L), ($ = l[L + I] - l[L])) : p >= l[L] && ((k = L), ($ = l[l.length - 1] - l[l.length - 2]));
1667                }
1668                var D = (p - l[k]) / $,
1669                    O = k < s.slidesPerGroupSkip - 1 ? 1 : s.slidesPerGroup;
1670                if (u > s.longSwipesMs) {
1671                    if (!s.longSwipes) return void t.slideTo(t.activeIndex);
1672                    "next" === t.swipeDirection && (D >= s.longSwipesRatio ? t.slideTo(k + O) : t.slideTo(k)), "prev" === t.swipeDirection && (D > 1 - s.longSwipesRatio ? t.slideTo(k + O) : t.slideTo(k));
1673                } else {
1674                    if (!s.shortSwipes) return void t.slideTo(t.activeIndex);
1675                    t.navigation && (h.target === t.navigation.nextEl || h.target === t.navigation.prevEl)
1676                        ? h.target === t.navigation.nextEl
1677                            ? t.slideTo(k + O)
1678                            : t.slideTo(k)
1679                        : ("next" === t.swipeDirection && t.slideTo(k + O), "prev" === t.swipeDirection && t.slideTo(k));
1680                }
1681            }
1682    }
1683    function G() {
1684        var e = this.params,
1685            t = this.el;
1686        if (!t || 0 !== t.offsetWidth) {
1687            e.breakpoints && this.setBreakpoint();
1688            var i = this.allowSlideNext,
1689                s = this.allowSlidePrev,
1690                a = this.snapGrid;
1691            (this.allowSlideNext = !0),
1692                (this.allowSlidePrev = !0),
1693                this.updateSize(),
1694                this.updateSlides(),
1695                this.updateSlidesClasses(),
1696                ("auto" === e.slidesPerView || e.slidesPerView > 1) && this.isEnd && !this.params.centeredSlides ? this.slideTo(this.slides.length - 1, 0, !1, !0) : this.slideTo(this.activeIndex, 0, !1, !0),
1697                this.autoplay && this.autoplay.running && this.autoplay.paused && this.autoplay.run(),
1698                (this.allowSlidePrev = s),
1699                (this.allowSlideNext = i),
1700                this.params.watchOverflow && a !== this.snapGrid && this.checkOverflow();
1701        }
1702    }
1703    function B(e) {
1704        this.allowClick || (this.params.preventClicks && e.preventDefault(), this.params.preventClicksPropagation && this.animating && (e.stopPropagation(), e.stopImmediatePropagation()));
1705    }
1706    function H() {
1707        var e = this.wrapperEl;
1708        (this.previousTranslate = this.translate), (this.translate = this.isHorizontal() ? -e.scrollLeft : -e.scrollTop), -0 === this.translate && (this.translate = 0), this.updateActiveIndex(), this.updateSlidesClasses();
1709        var t = this.maxTranslate() - this.minTranslate();
1710        (0 === t ? 0 : (this.translate - this.minTranslate()) / t) !== this.progress && this.updateProgress(this.translate), this.emit
1710("setTranslate", this.translate, !1);
1711    }
1712    var N = !1;
1713    function X() {}
1714    var V = {
1715            init: !0,
1716            direction: "horizontal",
1717            touchEventsTarget: "container",
1718            initialSlide: 0,
1719            speed: 300,
1720            cssMode: !1,
1721            updateOnWindowResize: !0,
1722            preventInteractionOnTransition: !1,
1723            edgeSwipeDetection: !1,
1724            edgeSwipeThreshold: 20,
1725            freeMode: !1,
1726            freeModeMomentum: !0,
1727            freeModeMomentumRatio: 1,
1728            freeModeMomentumBounce: !0,
1729            freeModeMomentumBounceRatio: 1,
1730            freeModeMomentumVelocityRatio: 1,
1731            freeModeSticky: !1,
1732            freeModeMinimumVelocity: 0.02,
1733            autoHeight: !1,
1734            setWrapperSize: !1,
1735            virtualTranslate: !1,
1736            effect: "slide",
1737            breakpoints: void 0,
1738            spaceBetween: 0,
1739            slidesPerView: 1,
1740            slidesPerColumn: 1,
1741            slidesPerColumnFill: "column",
1742            slidesPerGroup: 1,
1743            slidesPerGroupSkip: 0,
1744            centeredSlides: !1,
1745            centeredSlidesBounds: !1,
1746            slidesOffsetBefore: 0,
1747            slidesOffsetAfter: 0,
1748            normalizeSlideIndex: !0,
1749            centerInsufficientSlides: !1,
1750            watchOverflow: !1,
1751            roundLengths: !1,
1752            touchRatio: 1,
1753            touchAngle: 45,
1754            simulateTouch: !0,
1755            shortSwipes: !0,
1756            longSwipes: !0,
1757            longSwipesRatio: 0.5,
1758            longSwipesMs: 300,
1759            followFinger: !0,
1760            allowTouchMove: !0,
1761            threshold: 0,
1762            touchMoveStopPropagation: !1,
1763            touchStartPreventDefault: !0,
1764            touchStartForcePreventDefault: !1,
1765            touchReleaseOnEdges: !1,
1766            uniqueNavElements: !0,
1767            resistance: !0,
1768            resistanceRatio: 0.85,
1769            watchSlidesProgress: !1,
1770            watchSlidesVisibility: !1,
1771            grabCursor: !1,
1772            preventClicks: !0,
1773            preventClicksPropagation: !0,
1774            slideToClickedSlide: !1,
1775            preloadImages: !0,
1776            updateOnImagesReady: !0,
1777            loop: !1,
1778            loopAdditionalSlides: 0,
1779            loopedSlides: null,
1780            loopFillGroupWithBlank: !1,
1781            allowSlidePrev: !0,
1782            allowSlideNext: !0,
1783            swipeHandler: null,
1784            noSwiping: !0,
1785            noSwipingClass: "swiper-no-swiping",
1786            noSwipingSelector: null,
1787            passiveListeners: !0,
1788            containerModifierClass: "swiper-container-",
1789            slideClass: "swiper-slide",
1790            slideBlankClass: "swiper-slide-invisible-blank",
1791            slideActiveClass: "swiper-slide-active",
1792            slideDuplicateActiveClass: "swiper-slide-duplicate-active",
1793            slideVisibleClass: "swiper-slide-visible",
1794            slideDuplicateClass: "swiper-slide-duplicate",
1795            slideNextClass: "swiper-slide-next",
1796            slideDuplicateNextClass: "swiper-slide-duplicate-next",
1797            slidePrevClass: "swiper-slide-prev",
1798            slideDuplicatePrevClass: "swiper-slide-duplicate-prev",
1799            wrapperClass: "swiper-wrapper",
1800            runCallbacksOnInit: !0,
1801        },
1802        Y = {
1803            update: h,
1804            translate: p,
1805            transition: c,
1806            slide: u,
1807            loop: v,
1808            grabCursor: f,
1809            manipulation: L,
1810            events: {
1811                attachEvents: function () {
1812                    var t = this.params,
1813                        i = this.touchEvents,
1814                        s = this.el,
1815                        a = this.wrapperEl;
1816                    (this.onTouchStart = D.bind(this)), (this.onTouchMove = O.bind(this)), (this.onTouchEnd = A.bind(this)), t.cssMode && (this.onScroll = H.bind(this)), (this.onClick = B.bind(this));
1817                    var r = !!t.nested;
1818                    if (!o.touch && o.pointerEvents) s.addEventListener(i.start, this.onTouchStart, !1), e.addEventListener(i.move, this.onTouchMove, r), e.addEventListener(i.end, this.onTouchEnd, !1);
1819                    else {
1820                        if (o.touch) {
1821                            var n = !("touchstart" !== i.start || !o.passiveListener || !t.passiveListeners) && { passive: !0, capture: !1 };
1822                            s.addEventListener(i.start, this.onTouchStart, n),
1823                                s.addEventListener(i.move, this.onTouchMove, o.passiveListener ? { passive: !1, capture: r } : r),
1824                                s.addEventListener(i.end, this.onTouchEnd, n),
1825                                i.cancel && s.addEventListener(i.cancel, this.onTouchEnd, n),
1826                                N || (e.addEventListener("touchstart", X), (N = !0));
1827                        }
1828                        ((t.simulateTouch && !I.ios && !I.android) || (t.simulateTouch && !o.touch && I.ios)) &&
1829                            (s.addEventListener("mousedown", this.onTouchStart, !1), e.addEventListener("mousemove", this.onTouchMove, r), e.addEventListener("mouseup", this.onTouchEnd, !1));
1830                    }
1831                    (t.preventClicks || t.preventClicksPropagation) && s.addEventListener("click", this.onClick, !0),
1832                        t.cssMode && a.addEventListener("scroll", this.onScroll),
1833                        t.updateOnWindowResize ? this.on(I.ios || I.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", G, !0) : this.on("observerUpdate", G, !0);
1834                },
1835                detachEvents: function () {
1836                    var t = this.params,
1837                        i = this.touchEvents,
1838                        s = this.el,
1839                        a = this.wrapperEl,
1840                        r = !!t.nested;
1841                    if (!o.touch && o.pointerEvents) s.removeEventListener(i.start, this.onTouchStart, !1), e.removeEventListener(i.move, this.onTouchMove, r), e.removeEventListener(i.end, this.onTouchEnd, !1);
1842                    else {
1843                        if (o.touch) {
1844                            var n = !("onTouchStart" !== i.start || !o.passiveListener || !t.passiveListeners) && { passive: !0, capture: !1 };
1845                            s.removeEventListener(i.start, this.onTouchStart, n),
1846                                s.removeEventListener(i.move, this.onTouchMove, r),
1847                                s.removeEventListener(i.end, this.onTouchEnd, n),
1848                                i.cancel && s.removeEventListener(i.cancel, this.onTouchEnd, n);
1849                        }
1850                        ((t.simulateTouch && !I.ios && !I.android) || (t.simulateTouch && !o.touch && I.ios)) &&
1851                            (s.removeEventListener("mousedown", this.onTouchStart, !1), e.removeEventListener("mousemove", this.onTouchMove, r), e.removeEventListener("mouseup", this.onTouchEnd, !1));
1852                    }
1853                    (t.preventClicks || t.preventClicksPropagation) && s.removeEventListener("click", this.onClick, !0),
1854                        t.cssMode && a.removeEventListener("scroll", this.onScroll),
1855                        this.off(I.ios || I.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", G);
1856                },
1857            },
1858            breakpoints: {
1859                setBreakpoint: function () {
1860                    var e = this.activeIndex,
1861                        t = this.initialized,
1862                        i = this.loopedSlides;
1863                    void 0 === i && (i = 0);
1864                    var s = this.params,
1865                        a = this.$el,
1866                        r = s.breakpoints;
1867                    if (r && (!r || 0 !== Object.keys(r).length)) {
1868                        var o = this.getBreakpoint(r);
1869                        if (o && this.currentBreakpoint !== o) {
1870                            var l = o in r ? r[o] : void 0;
1871                            l &&
1872                                ["slidesPerView", "spaceBetween", "slidesPerGroup", "slidesPerGroupSkip", "slidesPerColumn"].forEach(function (e) {
1873                                    var t = l[e];
1874                                    void 0 !== t && (l[e] = "slidesPerView" !== e || ("AUTO" !== t && "auto" !== t) ? ("slidesPerView" === e ? parseFloat(t) : parseInt(t, 10)) : "auto");
1875                                });
1876                            var d = l || this.originalParams,
1877                                h = s.slidesPerColumn > 1,
1878                                p = d.slidesPerColumn > 1;
1879                            h && !p
1880                                ? a.removeClass(s.containerModifierClass + "multirow " + s.containerModifierClass + "multirow-column")
1881                                : !h && p && (a.addClass(s.containerModifierClass + "multirow"), "column" === d.slidesPerColumnFill && a.addClass(s.containerModifierClass + "multirow-column"));
1882                            var c = d.direction && d.direction !== s.direction,
1883                                u = s.loop && (d.slidesPerView !== s.slidesPerView || c);
1884                            c && t && this.changeDirection(),
1885                                n.extend(this.params, d),
1886                                n.extend(this, { allowTouchMove: this.params.allowTouchMove, allowSlideNext: this.params.allowSlideNext, allowSlidePrev: this.params.allowSlidePrev }),
1887                                (this.currentBreakpoint = o),
1888                                u && t && (this.loopDestroy(), this.loopCreate(), this.updateSlides(), this.slideTo(e - i + this.loopedSlides, 0, !1)),
1889                                this.emit("breakpoint", d);
1890                        }
1891                    }
1892                },
1893                getBreakpoint: function (e) {
1894                    if (e) {
1895                        var i = !1,
1896                            s = Object.keys(e).map(function (e) {
1897                                if ("string" == typeof e && e.startsWith("@")) {
1898                                    var i = parseFloat(e.substr(1));
1899                                    return { value: t.innerHeight * i, point: e };
1900                                }
1901                                return { value: e, point: e };
1902                            });
1903                        s.sort(function (e, t) {
1904                            return parseInt(e.value, 10) - parseInt(t.value, 10);
1905                        });
1906                        for (var a = 0; a < s.length; a += 1) {
1907                            var r = s[a],
1908                                n = r.point;
1909                            r.value <= t.innerWidth && (i = n);
1910                        }
1911                        return i || "max";
1912                    }
1913                },
1914            },
1915            checkOverflow: {
1916                checkOverflow: function () {
1917                    var e = this.params,
1918                        t = this.isLocked,
1919                        i = this.slides.length > 0 && e.slidesOffsetBefore + e.spaceBetween * (this.slides.length - 1) + this.slides[0].offsetWidth * this.slides.length;
1920                    e.slidesOffsetBefore && e.slidesOffsetAfter && i ? (this.isLocked = i <= this.size) : (this.isLocked = 1 === this.snapGrid.length),
1921                        (this.allowSlideNext = !this.isLocked),
1922                        (this.allowSlidePrev = !this.isLocked),
1923                        t !== this.isLocked && this.emit(this.isLocked ? "lock" : "unlock"),
1924                        t && t !== this.isLocked && ((this.isEnd = !1), this.navigation.update());
1925                },
1926            },
1927            classes: {
1928                addClasses: function () {
1929                    var e = this.classNames,
1930                        t = this.params,
1931                        i = this.rtl,
1932                        s = this.$el,
1933                        a = [];
1934                    a.push("initialized"),
1935                        a.push(t.direction),
1936                        t.freeMode && a.push("free-mode"),
1937                        t.autoHeight && a.push("autoheight"),
1938                        i && a.push("rtl"),
1939                        t.slidesPerColumn > 1 && (a.push("multirow"), "column" === t.slidesPerColumnFill && a.push("multirow-column")),
1940                        I.android && a.push("android"),
1941                        I.ios && a.push("ios"),
1942                        t.cssMode && a.push("css-mode"),
1943                        a.forEach(function (i) {
1944                            e.push(t.containerModifierClass + i);
1945                        }),
1946                        s.addClass(e.join(" "));
1947                },
1948                removeClasses: function () {
1949                    var e = this.$el,
1950                        t = this.classNames;
1951                    e.removeClass(t.join(" "));
1952                },
1953            },
1954            images: {
1955                loadImage: function (e, i, s, a, r, n) {
1956                    var o;
1957                    function l() {
1958                        n && n();
1959                    }
1960                    e.complete && r ? l() : i ? (((o = new t.Image()).onload = l), (o.onerror = l), a && (o.sizes = a), s && (o.srcset = s), i && (o.src = i)) : l();
1961                },
1962                preloadImages: function () {
1963                    var e = this;
1964                    function t() {
1965                        null != e && e && !e.destroyed && (void 0 !== e.imagesLoaded && (e.imagesLoaded += 1), e.imagesLoaded === e.imagesToLoad.length && (e.params.updateOnImagesReady && e.update(), e.emit("imagesReady")));
1966                    }
1967                    e.imagesToLoad = e.$el.find("img");
1968                    for (var i = 0; i < e.imagesToLoad.length; i += 1) {
1969                        var s = e.imagesToLoad[i];
1970                        e.loadImage(s, s.currentSrc || s.getAttribute("src"), s.srcset || s.getAttribute("srcset"), s.sizes || s.getAttribute("sizes"), !0, t);
1971                    }
1972                },
1973            },
1974        },
1975        F = {},
1976        W = (function (e) {
1977            function t() {
1978                for (var i, a, r, l = [], d = arguments.length; d--; ) l[d] = arguments[d];
1979                1 === l.length && l[0].constructor && l[0].constructor === Object ? (r = l[0]) : ((a = (i = l)[0]), (r = i[1])),
1980                    r || (r = {}),
1981                    (r = n.extend({}, r)),
1982                    a && !r.el && (r.el = a),
1983                    e.call(this, r),
1984                    Object.keys(Y).forEach(function (e) {
1985                        Object.keys(Y[e]).forEach(function (i) {
1986                            t.prototype[i] || (t.prototype[i] = Y[e][i]);
1987                        });
1988                    });
1989                var h = this;
1990                void 0 === h.modules && (h.modules = {}),
1991                    Object.keys(h.modules).forEach(function (e) {
1992                        var t = h.modules[e];
1993                        if (t.params) {
1994                            var i = Object.keys(t.params)[0],
1995                                s = t.params[i];
1996                            if ("object" != typeof s || null === s) return;
1997                            if (!(i in r && "enabled" in s)) return;
1998                            !0 === r[i] && (r[i] = { enabled: !0 }), "object" != typeof r[i] || "enabled" in r[i] || (r[i].enabled = !0), r[i] || (r[i] = { enabled: !1 });
1999                        }
2000                    });
2001                var p = n.extend({}, V);
2002                h.useModulesParams(p), (h.params = n.extend({}, p, F, r)), (h.originalParams = n.extend({}, h.params)), (h.passedParams = n.extend({}, r)), (h.$ = s);
2003                var c = s(h.params.el);
2004                if ((a = c[0])) {
2005                    if (c.length > 1) {
2006                        var u = [];
2007                        return (
2008                            c.each(function (e, i) {
2009                                var s = n.extend({}, r, { el: i });
2010                                u.push(new t(s));
2011                            }),
2012                            u
2013                        );
2014                    }
2015                    var v, f, m;
2016                    return (
2017                        (a.swiper = h),
2018                        c.data("swiper", h),
2019                        a && a.shadowRoot && a.shadowRoot.querySelector
2020                            ? ((v = s(a.shadowRoot.querySelector("." + h.params.wrapperClass))).children = function (e) {
2021                                  return c.children(e);
2022                              })
2023                            : (v = c.children("." + h.params.wrapperClass)),
2024                        n.extend(h, {
2025                            $el: c,
2026                            el: a,
2027                            $wrapperEl: v,
2028                            wrapperEl: v[0],
2029                            classNames: [],
2030                            slides: s(),
2031                            slidesGrid: [],
2032                            snapGrid: [],
2033                            slidesSizesGrid: [],
2034                            isHorizontal: function () {
2035                                return "horizontal" === h.params.direction;
2036                            },
2037                            isVertical: function () {
2038                                return "vertical" === h.params.direction;
2039                            },
2040                            rtl: "rtl" === a.dir.toLowerCase() || "rtl" === c.css("direction"),
2041                            rtlTranslate: "horizontal" === h.params.direction && ("rtl" === a.dir.toLowerCase() || "rtl" === c.css("direction")),
2042                            wrongRTL: "-webkit-box" === v.css("display"),
2043                            activeIndex: 0,
2044                            realIndex: 0,
2045                            isBeginning: !0,
2046                            isEnd: !1,
2047                            translate: 0,
2048                            previousTranslate: 0,
2049                            progress: 0,
2050                            velocity: 0,
2051                            animating: !1,
2052                            allowSlideNext: h.params.allowSlideNext,
2053                            allowSlidePrev: h.params.allowSlidePrev,
2054                            touchEvents:
2055                                ((f = ["touchstart", "touchmove", "touchend", "touchcancel"]),
2056                                (m = ["mousedown", "mousemove", "mouseup"]),
2057                                o.pointerEvents && (m = ["pointerdown", "pointermove", "pointerup"]),
2058                                (h.touchEventsTouch = { start: f[0], move: f[1], end: f[2], cancel: f[3] }),
2059                                (h.touchEventsDesktop = { start: m[0], move: m[1], end: m[2] }),
2060                                o.touch || !h.params.simulateTouch ? h.touchEventsTouch : h.touchEventsDesktop),
2061                            touchEventsData: {
2062                                isTouched: void 0,
2063                                isMoved: void 0,
2064                                allowTouchCallbacks: void 0,
2065                                touchStartTime: void 0,
2066                                isScrolling: void 0,
2067                                currentTranslate: void 0,
2068                                startTranslate: void 0,
2069                                allowThresholdMove: void 0,
2070                                formElements: "input, select, option, textarea, button, video, label",
2071                                lastClickTime: n.now(),
2072                                clickTimeout: void 0,
2073                                velocities: [],
2074                                allowMomentumBounce: void 0,
2075                                isTouchEvent: void 0,
2076                                startMoving: void 0,
2077                            },
2078                            allowClick: !0,
2079                            allowTouchMove: h.params.allowTouchMove,
2080                            touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 },
2081                            imagesToLoad: [],
2082                            imagesLoaded: 0,
2083                        }),
2084                        h.useModules(),
2085                        h.params.init && h.init(),
2086                        h
2087                    );
2088                }
2089            }
2090            e && (t.__proto__ = e), (t.prototype = Object.create(e && e.prototype)), (t.prototype.constructor = t);
2091            var i = { extendedDefaults: { configurable: !0 }, defaults: { configurable: !0 }, Class: { configurable: !0 }, $: { configurable: !0 } };
2092            return (
2093                (t.prototype.slidesPerViewDynamic = function () {
2094                    var e = this.params,
2095                        t = this.slides,
2096                        i = this.slidesGrid,
2097                        s = this.size,
2098                        a = this.activeIndex,
2099                        r = 1;
2100                    if (e.centeredSlides) {
2101                        for (var n, o = t[a].swiperSlideSize, l = a + 1; l < t.length; l += 1) t[l] && !n && ((r += 1), (o += t[l].swiperSlideSize) > s && (n = !0));
2102                        for (var d = a - 1; d >= 0; d -= 1) t[d] && !n && ((r += 1), (o += t[d].swiperSlideSize) > s && (n = !0));
2103                    } else for (var h = a + 1; h < t.length; h += 1) i[h] - i[a] < s && (r += 1);
2104                    return r;
2105                }),
2106                (t.prototype.update = function () {
2107                    var e = this;
2108                    if (e && !e.destroyed) {
2109                        var t = e.snapGrid,
2110                            i = e.params;
2111                        i.breakpoints && e.setBreakpoint(),
2112                            e.updateSize(),
2113                            e.updateSlides(),
2114                            e.updateProgress(),
2115                            e.updateSlidesClasses(),
2116                            e.params.freeMode
2117                                ? (s(), e.params.autoHeight && e.updateAutoHeight())
2118                                : (("auto" === e.params.slidesPerView || e.params.slidesPerView > 1) && e.isEnd && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0)) || s(),
2119                            i.watchOverflow && t !== e.snapGrid && e.checkOverflow(),
2120                            e.emit("update");
2121                    }
2122                    function s() {
2123                        var t = e.rtlTranslate ? -1 * e.translate : e.translate,
2124                            i = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate());
2125                        e.setTranslate(i), e.updateActiveIndex(), e.updateSlidesClasses();
2126                    }
2127                }),
2128                (t.prototype.changeDirection = function (e, t) {
2129                    void 0 === t && (t = !0);
2130                    var i = this.params.direction;
2131                    return (
2132                        e || (e = "horizontal" === i ? "vertical" : "horizontal"),
2133                        e === i || ("horizontal" !== e && "vertical" !== e)
2134                            ? this
2135                            : (this.$el.removeClass("" + this.params.containerModifierClass + i
2135).addClass("" + this.params.containerModifierClass + e),
2136                              (this.params.direction = e),
2137                              this.slides.each(function (t, i) {
2138                                  "vertical" === e ? (i.style.width = "") : (i.style.height = "");
2139                              }),
2140                              this.emit("changeDirection"),
2141                              t && this.update(),
2142                              this)
2143                    );
2144                }),
2145                (t.prototype.init = function () {
2146                    this.initialized ||
2147                        (this.emit("beforeInit"),
2148                        this.params.breakpoints && this.setBreakpoint(),
2149                        this.addClasses(),
2150                        this.params.loop && this.loopCreate(),
2151                        this.updateSize(),
2152                        this.updateSlides(),
2153                        this.params.watchOverflow && this.checkOverflow(),
2154                        this.params.grabCursor && this.setGrabCursor(),
2155                        this.params.preloadImages && this.preloadImages(),
2156                        this.params.loop ? this.slideTo(this.params.initialSlide + this.loopedSlides, 0, this.params.runCallbacksOnInit) : this.slideTo(this.params.initialSlide, 0, this.params.runCallbacksOnInit),
2157                        this.attachEvents(),
2158                        (this.initialized = !0),
2159                        this.emit("init"));
2160                }),
2161                (t.prototype.destroy = function (e, t) {
2162                    void 0 === e && (e = !0), void 0 === t && (t = !0);
2163                    var i = this,
2164                        s = i.params,
2165                        a = i.$el,
2166                        r = i.$wrapperEl,
2167                        o = i.slides;
2168                    return void 0 === i.params || i.destroyed
2169                        ? null
2170                        : (i.emit("beforeDestroy"),
2171                          (i.initialized = !1),
2172                          i.detachEvents(),
2173                          s.loop && i.loopDestroy(),
2174                          t &&
2175                              (i.removeClasses(),
2176                              a.removeAttr("style"),
2177                              r.removeAttr("style"),
2178                              o && o.length && o.removeClass([s.slideVisibleClass, s.slideActiveClass, s.slideNextClass, s.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),
2179                          i.emit("destroy"),
2180                          Object.keys(i.eventsListeners).forEach(function (e) {
2181                              i.off(e);
2182                          }),
2183                          !1 !== e && ((i.$el[0].swiper = null), i.$el.data("swiper", null), n.deleteProps(i)),
2184                          (i.destroyed = !0),
2185                          null);
2186                }),
2187                (t.extendDefaults = function (e) {
2188                    n.extend(F, e);
2189                }),
2190                (i.extendedDefaults.get = function () {
2191                    return F;
2192                }),
2193                (i.defaults.get = function () {
2194                    return V;
2195                }),
2196                (i.Class.get = function () {
2197                    return e;
2198                }),
2199                (i.$.get = function () {
2200                    return s;
2201                }),
2202                Object.defineProperties(t, i),
2203                t
2204            );
2205        })(l),
2206        R = { name: "device", proto: { device: I }, static: { device: I } },
2207        q = { name: "support", proto: { support: o }, static: { support: o } },
2208        j = {
2209            isEdge: !!t.navigator.userAgent.match(/Edge/g),
2210            isSafari: (function () {
2211                var e = t.navigator.userAgent.toLowerCase();
2212                return e.indexOf("safari") >= 0 && e.indexOf("chrome") < 0 && e.indexOf("android") < 0;
2213            })(),
2214            isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent),
2215        },
2216        K = { name: "browser", proto: { browser: j }, static: { browser: j } },
2217        U = {
2218            name: "resize",
2219            create: function () {
2220                var e = this;
2221                n.extend(e, {
2222                    resize: {
2223                        resizeHandler: function () {
2224                            e && !e.destroyed && e.initialized && (e.emit("beforeResize"), e.emit("resize"));
2225                        },
2226                        orientationChangeHandler: function () {
2227                            e && !e.destroyed && e.initialized && e.emit("orientationchange");
2228                        },
2229                    },
2230                });
2231            },
2232            on: {
2233                init: function () {
2234                    t.addEventListener("resize", this.resize.resizeHandler), t.addEventListener("orientationchange", this.resize.orientationChangeHandler);
2235                },
2236                destroy: function () {
2237                    t.removeEventListener("resize", this.resize.resizeHandler), t.removeEventListener("orientationchange", this.resize.orientationChangeHandler);
2238                },
2239            },
2240        },
2241        _ = {
2242            func: t.MutationObserver || t.WebkitMutationObserver,
2243            attach: function (e, i) {
2244                void 0 === i && (i = {});
2245                var s = this,
2246                    a = new (0, _.func)(function (e) {
2247                        if (1 !== e.length) {
2248                            var i = function () {
2249                                s.emit("observerUpdate", e[0]);
2250                            };
2251                            t.requestAnimationFrame ? t.requestAnimationFrame(i) : t.setTimeout(i, 0);
2252                        } else s.emit("observerUpdate", e[0]);
2253                    });
2254                a.observe(e, { attributes: void 0 === i.attributes || i.attributes, childList: void 0 === i.childList || i.childList, characterData: void 0 === i.characterData || i.characterData }), s.observer.observers.push(a);
2255            },
2256            init: function () {
2257                if (o.observer && this.params.observer) {
2258                    if (this.params.observeParents) for (var e = this.$el.parents(), t = 0; t < e.length; t += 1) this.observer.attach(e[t]);
2259                    this.observer.attach(this.$el[0], { childList: this.params.observeSlideChildren }), this.observer.attach(this.$wrapperEl[0], { attributes: !1 });
2260                }
2261            },
2262            destroy: function () {
2263                this.observer.observers.forEach(function (e) {
2264                    e.disconnect();
2265                }),
2266                    (this.observer.observers = []);
2267            },
2268        },
2269        Z = {
2270            name: "observer",
2271            params: { observer: !1, observeParents: !1, observeSlideChildren: !1 },
2272            create: function () {
2273                n.extend(this, { observer: { init: _.init.bind(this), attach: _.attach.bind(this), destroy: _.destroy.bind(this), observers: [] } });
2274            },
2275            on: {
2276                init: function () {
2277                    this.observer.init();
2278                },
2279                destroy: function () {
2280                    this.observer.destroy();
2281                },
2282            },
2283        },
2284        Q = {
2285            update: function (e) {
2286                var t = this,
2287                    i = t.params,
2288                    s = i.slidesPerView,
2289                    a = i.slidesPerGroup,
2290                    r = i.centeredSlides,
2291                    o = t.params.virtual,
2292                    l = o.addSlidesBefore,
2293                    d = o.addSlidesAfter,
2294                    h = t.virtual,
2295                    p = h.from,
2296                    c = h.to,
2297                    u = h.slides,
2298                    v = h.slidesGrid,
2299                    f = h.renderSlide,
2300                    m = h.offset;
2301                t.updateActiveIndex();
2302                var g,
2303                    b,
2304                    w,
2305                    y = t.activeIndex || 0;
2306                (g = t.rtlTranslate ? "right" : t.isHorizontal() ? "left" : "top"), r ? ((b = Math.floor(s / 2) + a + l), (w = Math.floor(s / 2) + a + d)) : ((b = s + (a - 1) + l), (w = a + d));
2307                var x = Math.max((y || 0) - w, 0),
2308                    T = Math.min((y || 0) + b, u.length - 1),
2309                    E = (t.slidesGrid[x] || 0) - (t.slidesGrid[0] || 0);
2310                function S() {
2311                    t.updateSlides(), t.updateProgress(), t.updateSlidesClasses(), t.lazy && t.params.lazy.enabled && t.lazy.load();
2312                }
2313                if ((n.extend(t.virtual, { from: x, to: T, offset: E, slidesGrid: t.slidesGrid }), p === x && c === T && !e)) return t.slidesGrid !== v && E !== m && t.slides.css(g, E + "px"), void t.updateProgress();
2314                if (t.params.virtual.renderExternal)
2315                    return (
2316                        t.params.virtual.renderExternal.call(t, {
2317                            offset: E,
2318                            from: x,
2319                            to: T,
2320                            slides: (function () {
2321                                for (var e = [], t = x; t <= T; t += 1) e.push(u[t]);
2322                                return e;
2323                            })(),
2324                        }),
2325                        void S()
2326                    );
2327                var C = [],
2328                    M = [];
2329                if (e) t.$wrapperEl.find("." + t.params.slideClass).remove();
2330                else for (var P = p; P <= c; P += 1) (P < x || P > T) && t.$wrapperEl.find("." + t.params.slideClass + '[data-swiper-slide-index="' + P + '"]').remove();
2331                for (var z = 0; z < u.length; z += 1) z >= x && z <= T && (void 0 === c || e ? M.push(z) : (z > c && M.push(z), z < p && C.push(z)));
2332                M.forEach(function (e) {
2333                    t.$wrapperEl.append(f(u[e], e));
2334                }),
2335                    C.sort(function (e, t) {
2336                        return t - e;
2337                    }
2337).forEach(function (e) {
2338                        t.$wrapperEl.prepend(f(u[e], e));
2339                    }),
2340                    t.$wrapperEl.children(".swiper-slide").css(g, E + "px"),
2341                    S();
2342            },
2343            renderSlide: function (e, t) {
2344                var i = this.params.virtual;
2345                if (i.cache && this.virtual.cache[t]) return this.virtual.cache[t];
2346                var a = i.renderSlide ? s(i.renderSlide.call(this, e, t)) : s('<div class="' + this.params.slideClass + '" data-swiper-slide-index="' + t + '">' + e + "</div>");
2347                return a.attr("data-swiper-slide-index") || a.attr("data-swiper-slide-index", t), i.cache && (this.virtual.cache[t] = a), a;
2348            },
2349            appendSlide: function (e) {
2350                if ("object" == typeof e && "length" in e) for (var t = 0; t < e.length; t += 1) e[t] && this.virtual.slides.push(e[t]);
2351                else this.virtual.slides.push(e);
2352                this.virtual.update(!0);
2353            },
2354            prependSlide: function (e) {
2355                var t = this.activeIndex,
2356                    i = t + 1,
2357                    s = 1;
2358                if (Array.isArray(e)) {
2359                    for (var a = 0; a < e.length; a += 1) e[a] && this.virtual.slides.unshift(e[a]);
2360                    (i = t + e.length), (s = e.length);
2361                } else this.virtual.slides.unshift(e);
2362                if (this.params.virtual.cache) {
2363                    var r = this.virtual.cache,
2364                        n = {};
2365                    Object.keys(r).forEach(function (e) {
2366                        var t = r[e],
2367                            i = t.attr("data-swiper-slide-index");
2368                        i && t.attr("data-swiper-slide-index", parseInt(i, 10) + 1), (n[parseInt(e, 10) + s] = t);
2369                    }),
2370                        (this.virtual.cache = n);
2371                }
2372                this.virtual.update(!0), this.slideTo(i, 0);
2373            },
2374            removeSlide: function (e) {
2375                if (null != e) {
2376                    var t = this.activeIndex;
2377                    if (Array.isArray(e)) for (var i = e.length - 1; i >= 0; i -= 1) this.virtual.slides.splice(e[i], 1), this.params.virtual.cache && delete this.virtual.cache[e[i]], e[i] < t && (t -= 1), (t = Math.max(t, 0));
2378                    else this.virtual.slides.splice(e, 1), this.params.virtual.cache && delete this.virtual.cache[e], e < t && (t -= 1), (t = Math.max(t, 0));
2379                    this.virtual.update(!0), this.slideTo(t, 0);
2380                }
2381            },
2382            removeAllSlides: function () {
2383                (this.virtual.slides = []), this.params.virtual.cache && (this.virtual.cache = {}), this.virtual.update(!0), this.slideTo(0, 0);
2384            },
2385        },
2386        J = {
2387            name: "virtual",
2388            params: { virtual: { enabled: !1, slides: [], cache: !0, renderSlide: null, renderExternal: null, addSlidesBefore: 0, addSlidesAfter: 0 } },
2389            create: function () {
2390                n.extend(this, {
2391                    virtual: {
2392                        update: Q.update.bind(this),
2393                        appendSlide: Q.appendSlide.bind(this),
2394                        prependSlide: Q.prependSlide.bind(this),
2395                        removeSlide: Q.removeSlide.bind(this),
2396                        removeAllSlides: Q.removeAllSlides.bind(this),
2397                        renderSlide: Q.renderSlide.bind(this),
2398                        slides: this.params.virtual.slides,
2399                        cache: {},
2400                    },
2401                });
2402            },
2403            on: {
2404                beforeInit: function () {
2405                    if (this.params.virtual.enabled) {
2406                        this.classNames.push(this.params.containerModifierClass + "virtual");
2407                        var e = { watchSlidesProgress: !0 };
2408                        n.extend(this.params, e), n.extend(this.originalParams, e), this.params.initialSlide || this.virtual.update(
2408);
2409                    }
2410                },
2411                setTranslate: function () {
2412                    this.params.virtual.enabled && this.virtual.update();
2413                },
2414            },
2415        },
2416        ee = {
2417            handle: function (i) {
2418                var s = this.rtlTranslate,
2419                    a = i;
2420                a.originalEvent && (a = a.originalEvent);
2421                var r = a.keyCode || a.charCode;
2422                if (!this.allowSlideNext && ((this.isHorizontal() && 39 === r) || (this.isVertical() && 40 === r) || 34 === r)) return !1;
2423                if (!this.allowSlidePrev && ((this.isHorizontal() && 37 === r) || (this.isVertical() && 38 === r) || 33 === r)) return !1;
2424                if (!(a.shiftKey || a.altKey || a.ctrlKey || a.metaKey || (e.activeElement && e.activeElement.nodeName && ("input" === e.activeElement.nodeName.toLowerCase() || "textarea" === e.activeElement.nodeName.toLowerCase())))) {
2425                    if (this.params.keyboard.onlyInViewport && (33 === r || 34 === r || 37 === r || 39 === r || 38 === r || 40 === r)) {
2426                        var n = !1;
2427                        if (this.$el.parents("." + this.params.slideClass).length > 0 && 0 === this.$el.parents("." + this.params.slideActiveClass).length) return;
2428                        var o = t.innerWidth,
2429                            l = t.innerHeight,
2430                            d = this.$el.offset();
2431                        s && (d.left -= this.$el[0].scrollLeft);
2432                        for (
2433                            var h = [
2434                                    [d.left, d.top],
2435                                    [d.left + this.width, d.top],
2436                                    [d.left, d.top + this.height],
2437                                    [d.left + this.width, d.top + this.height],
2438                                ],
2439                                p = 0;
2440                            p < h.length;
2441                            p += 1
2442                        ) {
2443                            var c = h[p];
2444                            c[0] >= 0 && c[0] <= o && c[1] >= 0 && c[1] <= l && (n = !0);
2445                        }
2446                        if (!n) return;
2447                    }
2448                    this.isHorizontal()
2449                        ? ((33 !== r && 34 !== r && 37 !== r && 39 !== r) || (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)),
2450                          (((34 !== r && 39 !== r) || s) && ((33 !== r && 37 !== r) || !s)) || this.slideNext(),
2451                          (((33 !== r && 37 !== r) || s) && ((34 !== r && 39 !== r) || !s)) || this.slidePrev())
2452                        : ((33 !== r && 34 !== r && 38 !== r && 40 !== r) || (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)), (34 !== r && 40 !== r) || this.slideNext(), (33 !== r && 38 !== r) || this.slidePrev()),
2453                        this.emit("keyPress", r);
2454                }
2455            },
2456            enable: function () {
2457                this.keyboard.enabled || (s(e).on("keydown", this.keyboard.handle), (this.keyboard.enabled = !0));
2458            },
2459            disable: function () {
2460                this.keyboard.enabled && (s(e).off("keydown", this.keyboard.handle), (this.keyboard.enabled = !1));
2461            },
2462        },
2463        te = {
2464            name: "keyboard",
2465            params: { keyboard: { enabled: !1, onlyInViewport: !0 } },
2466            create: function () {
2467                n.extend(this, { keyboard: { enabled: !1, enable: ee.enable.bind(this), disable: ee.disable.bind(this), handle: ee.handle.bind(this) } });
2468            },
2469            on: {
2470                init: function () {
2471                    this.params.keyboard.enabled && this.keyboard.enable();
2472                },
2473                destroy: function () {
2474                    this.keyboard.enabled && this.keyboard.disable();
2475                },
2476            },
2477        };
2478    var ie = {
2479            lastScrollTime: n.now(),
2480            lastEventBeforeSnap: void 0,
2481            recentWheelEvents: [],
2482            event: function () {
2483                return t.navigator.userAgent.indexOf("firefox") > -1
2484                    ? "DOMMouseScroll"
2485                    : (function () {
2486                          var t = "onwheel" in e;
2487                          if (!t) {
2488                              var i = e.createElement("div");
2489                              i.setAttribute("onwheel", "return;"), (t = "function" == typeof i.onwheel);
2490                          }
2491                          return !t && e.implementation && e.implementation.hasFeature && !0 !== e.implementation.hasFeature("", "") && (t = e.implementation.hasFeature("Events.wheel", "3.0")), t;
2492                      })()
2493                    ? "wheel"
2494                    : "mousewheel";
2495            },
2496            normalize: function (e) {
2497                var t = 0,
2498                    i = 0,
2499                    s = 0,
2500                    a = 0;
2501                return (
2502                    "detail" in e && (i = e.detail),
2503                    "wheelDelta" in e && (i = -e.wheelDelta / 120),
2504                    "wheelDeltaY" in e && (i = -e.wheelDeltaY / 120),
2505                    "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120),
2506                    "axis" in e && e.axis === e.HORIZONTAL_AXIS && ((t = i), (i = 0)),
2507                    (s = 10 * t),
2508                    (a = 10 * i),
2509                    "deltaY" in e && (a = e.deltaY),
2510                    "deltaX" in e && (s = e.deltaX),
2511                    e.shiftKey && !s && ((s = a), (a = 0)),
2512                    (s || a) && e.deltaMode && (1 === e.deltaMode ? ((s *= 40), (a *= 40)) : ((s *= 800), (a *= 800))),
2513                    s && !t && (t = s < 1 ? -1 : 1),
2514                    a && !i && (i = a < 1 ? -1 : 1),
2515                    { spinX: t, spinY: i, pixelX: s, pixelY: a }
2516                );
2517            },
2518            handleMouseEnter: function () {
2519                this.mouseEntered = !0;
2520            },
2521            handleMouseLeave: function () {
2522                this.mouseEntered = !1;
2523            },
2524            handle: function (e) {
2525                var t = e,
2526                    i = this,
2527                    a = i.params.mousewheel;
2528                i.params.cssMode && t.preventDefault();
2529                var r = i.$el;
2530                if (("container" !== i.params.mousewheel.eventsTarged && (r = s(i.params.mousewheel.eventsTarged)), !i.mouseEntered && !r[0].contains(t.target) && !a.releaseOnEdges)) return !0;
2531                t.originalEvent && (t = t.originalEvent);
2532                var o = 0,
2533                    l = i.rtlTranslate ? -1 : 1,
2534                    d = ie.normalize(t);
2535                if (a.forceToAxis)
2536                    if (i.isHorizontal()) {
2537                        if (!(Math.abs(d.pixelX) > Math.abs(d.pixelY))) return !0;
2538                        o = d.pixelX * l;
2539                    } else {
2540                        if (!(Math.abs(d.pixelY) > Math.abs(d.pixelX))) return !0;
2541                        o = d.pixelY;
2542                    }
2543                else o = Math.abs(d.pixelX) > Math.abs(d.pixelY) ? -d.pixelX * l : -d.pixelY;
2544                if (0 === o) return !0;
2545                if ((a.invert && (o = -o), i.params.freeMode)) {
2546                    var h = { time: n.now(), delta: Math.abs(o), direction: Math.sign(o) },
2547                        p = i.mousewheel.lastEventBeforeSnap,
2548                        c = p && h.time < p.time + 500 && h.delta <= p.delta && h.direction === p.direction;
2549                    if (!c) {
2550                        (i.mousewheel.lastEventBeforeSnap = void 0), i.params.loop && i.loopFix();
2551                        var u = i.getTranslate() + o * a.sensitivity,
2552                            v = i.isBeginning,
2553                            f = i.isEnd;
2554                        if (
2555                            (u >= i.minTranslate() && (u = i.minTranslate()),
2556                            u <= i.maxTranslate() && (u = i.maxTranslate()),
2557                            i.setTransition(0),
2558                            i.setTranslate(u),
2559                            i.updateProgress(),
2560                            i.updateActiveIndex(),
2561                            i.updateSlidesClasses(),
2562                            ((!v && i.isBeginning) || (!f && i.isEnd)) && i.updateSlidesClasses(),
2563                            i.params.freeModeSticky)
2564                        ) {
2565                            clearTimeout(i.mousewheel.timeout), (i.mousewheel.timeout = void 0);
2566                            var m = i.mousewheel.recentWheelEvents;
2567                            m.length >= 15 && m.shift();
2568                            var g = m.length ? m[m.length - 1] : void 0,
2569                                b = m[0];
2570                            if ((m.push(h), g && (h.delta > g.delta || h.direction !== g.direction))) m.splice(0);
2571                            else if (m.length >= 15 && h.time - b.time < 500 && b.delta - h.delta >= 1 && h.delta <= 6) {
2572                                var w = o > 0 ? 0.8 : 0.2;
2573                                (i.mousewheel.lastEventBeforeSnap = h),
2574                                    m.splice(0),
2575                                    (i.mousewheel.timeout = n.nextTick(function () {
2576                                        i.slideToClosest(i.params.speed, !0, void 0, w);
2577                                    }, 0));
2578                            }
2579                            i.mousewheel.timeout ||
2580                                (i.mousewheel.timeout = n.nextTick(function () {
2581                                    (i.mousewheel.lastEventBeforeSnap = h), m.splice(0), i.slideToClosest(i.params.speed, !0, void 0, 0.5);
2582                                }, 500));
2583                        }
2584                        if ((c || i.emit("scroll", t), i.params.autoplay && i.params.autoplayDisableOnInteraction && i.autoplay.stop(), u === i.minTranslate() || u === i.maxTranslate())) return !0;
2585                    }
2586                } else {
2587                    var y = { time: n.now(), delta: Math.abs(o), direction: Math.sign(o), raw: e },
2588                        x = i.mousewheel.recentWheelEvents;
2589                    x.length >= 2 && x.shift();
2590                    var T = x.length ? x[x.length - 1] : void 0;
2591                    if ((x.push(y), T ? (y.direction !== T.direction || y.delta > T.delta) && i.mousewheel.animateSlider(y) : i.mousewheel.animateSlider(y), i.mousewheel.releaseScroll(y))) return !0;
2592                }
2593                return t.preventDefault ? t.preventDefault() : (t.returnValue = !1), !1;
2594            },
2595            animateSlider: function (e) {
2596                return (
2597                    (e.delta >= 6 && n.now() - this.mousewheel.lastScrollTime < 60) ||
2598                    (e.direction < 0
2599                        ? (this.isEnd && !this.params.loop) || this.animating || (this.slideNext(), this.emit
2599("scroll", e.raw))
2600                        : (this.isBeginning && !this.params.loop) || this.animating || (this.slidePrev(), this.emit("scroll", e.raw)),
2601                    (this.mousewheel.lastScrollTime = new t.Date().getTime()),
2602                    !1)
2603                );
2604            },
2605            releaseScroll: function (e) {
2606                var t = this.params.mousewheel;
2607                if (e.direction < 0) {
2608                    if (this.isEnd && !this.params.loop && t.releaseOnEdges) return !0;
2609                } else if (this.isBeginning && !this.params.loop && t.releaseOnEdges) return !0;
2610                return !1;
2611            },
2612            enable: function () {
2613                var e = ie.event();
2614                if (this.params.cssMode) return this.wrapperEl.removeEventListener(e, this.mousewheel.handle), !0;
2615                if (!e) return !1;
2616                if (this.mousewheel.enabled) return !1;
2617                var t = this.$el;
2618                return (
2619                    "container" !== this.params.mousewheel.eventsTarged && (t = s(this.params.mousewheel.eventsTarged)),
2620                    t.on("mouseenter", this.mousewheel.handleMouseEnter),
2621                    t.on("mouseleave", this.mousewheel.handleMouseLeave),
2622                    t.on(e, this.mousewheel.handle),
2623                    (this.mousewheel.enabled = !0),
2624                    !0
2625                );
2626            },
2627            disable: function () {
2628                var e = ie.event();
2629                if (this.params.cssMode) return this.wrapperEl.addEventListener(e, this.mousewheel.handle), !0;
2630                if (!e) return !1;
2631                if (!this.mousewheel.enabled) return !1;
2632                var t = this.$el;
2633                return "container" !== this.params.mousewheel.eventsTarged && (t = s(this.params.mousewheel.eventsTarged)), t.off(e, this.mousewheel.handle), (this.mousewheel.enabled = !1), !0;
2634            },
2635        },
2636        se = {
2637            update: function () {
2638                var e = this.params.navigation;
2639                if (!this.params.loop) {
2640                    var t = this.navigation,
2641                        i = t.$nextEl,
2642                        s = t.$prevEl;
2643                    s && s.length > 0 && (this.isBeginning ? s.addClass(e.disabledClass) : s.removeClass(e.disabledClass), s[this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass"](e.lockClass)),
2644                        i && i.length > 0 && (this.isEnd ? i.addClass(e.disabledClass) : i.removeClass(e.disabledClass), i[this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass"](e.lockClass));
2645                }
2646            },
2647            onPrevClick: function (e) {
2648                e.preventDefault(), (this.isBeginning && !this.params.loop) || this.slidePrev();
2649            },
2650            onNextClick: function (e) {
2651                e.preventDefault(), (this.isEnd && !this.params.loop) || this.slideNext();
2652            },
2653            init: function () {
2654                var e,
2655                    t,
2656                    i = this.params.navigation;
2657                (i.nextEl || i.prevEl) &&
2658                    (i.nextEl && ((e = s(i.nextEl)), this.params.uniqueNavElements && "string" == typeof i.nextEl && e.length > 1 && 1 === this.$el.find(i.nextEl).length && (e = this.$el.find(i.nextEl))),
2659                    i.prevEl && ((t = s(i.prevEl)), this.params.uniqueNavElements && "string" == typeof i.prevEl && t.length > 1 && 1 === this.$el.find(i.prevEl).length && (t = this.$el.find(i.prevEl))),
2660                    e && e.length > 0 && e.on("click", this.navigation.onNextClick),
2661                    t && t.length > 0 && t.on("click", this.navigation.onPrevClick),
2662                    n.extend(this.navigation, { $nextEl: e, nextEl: e && e[0], $prevEl: t, prevEl: t && t[0] }));
2663            },
2664            destroy: function () {
2665                var e = this.navigation,
2666                    t = e.$nextEl,
2667                    i = e.$prevEl;
2668                t && t.length && (t.off("click", this.navigation.onNextClick), t.removeClass(this.params.navigation.disabledClass)),
2669                    i && i.length && (i.off("click", this.navigation.onPrevClick), i.removeClass(this.params.navigation.disabledClass));
2670            },
2671        },
2672        ae = {
2673            update: function () {
2674                var e = this.rtl,
2675                    t = this.params.pagination;
2676                if (t.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length) {
2677                    var i,
2678                        a = this.virtual && this.params.virtual.enabled ? this.virtual.slides.length : this.slides.length,
2679                        r = this.pagination.$el,
2680                        n = this.params.loop ? Math.ceil((a - 2 * this.loopedSlides) / this.params.slidesPerGroup) : this.snapGrid.length;
2681                    if (
2682                        (this.params.loop
2683                            ? ((i = Math.ceil((this.activeIndex - this.loopedSlides) / this.params.slidesPerGroup)) > a - 1 - 2 * this.loopedSlides && (i -= a - 2 * this.loopedSlides),
2684                              i > n - 1 && (i -= n),
2685                              i < 0 && "bullets" !== this.params.paginationType && (i = n + i))
2686                            : (i = void 0 !== this.snapIndex ? this.snapIndex : this.activeIndex || 0),
2687                        "bullets" === t.type && this.pagination.bullets && this.pagination.bullets.length > 0)
2688                    ) {
2689                        var o,
2690                            l,
2691                            d,
2692                            h = this.pagination.bullets;
2693                        if (
2694                            (t.dynamicBullets &&
2695                                ((this.pagination.bulletSize = h.eq(0)[this.isHorizontal() ? "outerWidth" : "outerHeight"](!0)),
2696                                r.css(this.isHorizontal() ? "width" : "height", this.pagination.bulletSize * (t.dynamicMainBullets + 4) + "px"),
2697                                t.dynamicMainBullets > 1 &&
2698                                    void 0 !== this.previousIndex &&
2699                                    ((this.pagination.dynamicBulletIndex += i - this.previousIndex),
2700                                    this.pagination.dynamicBulletIndex > t.dynamicMainBullets - 1
2701                                        ? (this.pagination.dynamicBulletIndex = t.dynamicMainBullets - 1)
2702                                        : this.pagination.dynamicBulletIndex < 0 && (this.pagination.dynamicBulletIndex = 0)),
2703                                (o = i - this.pagination.dynamicBulletIndex),
2704                                (d = ((l = o + (Math.min(h.length, t.dynamicMainBullets) - 1)) + o) / 2)),
2705                            h.removeClass(
2706                                t.bulletActiveClass + " " + t.bulletActiveClass + "-next " + t.bulletActiveClass + "-next-next " + t.bulletActiveClass + "-prev " + t.bulletActiveClass + "-prev-prev " + t.bulletActiveClass + "-main"
2707                            ),
2708                            r.length > 1)
2709                        )
2710                            h.each(function (e, a) {
2711                                var r = s(a),
2712                                    n = r.index();
2713                                n === i && r.addClass(t.bulletActiveClass),
2714                                    t.dynamicBullets &&
2715                                        (n >= o && n <= l && r.addClass(t.bulletActiveClass + "-main"),
2716                                        n === o &&
2717                                            r
2718                                                .prev()
2719                                                .addClass(t.bulletActiveClass + "-prev")
2720                                                .prev()
2721                                                .addClass(t.bulletActiveClass + "-prev-prev"),
2722                                        n === l &&
2723                                            r
2724                                                .next()
2725                                                .addClass(t.bulletActiveClass + "-next")
2726                                                .next()
2727                                                .addClass(t.bulletActiveClass + "-next-next"));
2728                            });
2729                        else {
2730                            var p = h.eq(i),
2731                                c = p.index();
2732                            if ((p.addClass(t.bulletActiveClass), t.dynamicBullets)) {
2733                                for (var u = h.eq(o), v = h.eq(l), f = o;
2733 f <= l; f += 1) h.eq(f).addClass(t.bulletActiveClass + "-main");
2734                                if (this.params.loop)
2735                                    if (c >= h.length - t.dynamicMainBullets) {
2736                                        for (var m = t.dynamicMainBullets; m >= 0; m -= 1) h.eq(h.length - m).addClass(t.bulletActiveClass + "-main");
2737                                        h.eq(h.length - t.dynamicMainBullets - 1).addClass(t.bulletActiveClass + "-prev");
2738                                    } else
2739                                        u
2740                                            .prev()
2741                                            .addClass(t.bulletActiveClass + "-prev")
2742                                            .prev()
2743                                            .addClass(t.bulletActiveClass + "-prev-prev"),
2744                                            v
2745                                                .next()
2746                                                .addClass(t.bulletActiveClass + "-next")
2747                                                .next()
2748                                                .addClass(t.bulletActiveClass + "-next-next");
2749                                else
2750                                    u
2751                                        .prev()
2752                                        .addClass(t.bulletActiveClass + "-prev")
2753                                        .prev()
2754                                        .addClass(t.bulletActiveClass + "-prev-prev"),
2755                                        v
2756                                            .next()
2757                                            .addClass(t.bulletActiveClass + "-next")
2758                                            .next()
2759                                            .addClass(t.bulletActiveClass + "-next-next");
2760                            }
2761                        }
2762                        if (t.dynamicBullets) {
2763                            var g = Math.min(h.length, t.dynamicMainBullets + 4),
2764                                b = (this.pagination.bulletSize * g - this.pagination.bulletSize) / 2 - d * this.pagination.bulletSize,
2765                                w = e ? "right" : "left";
2766                            h.css(this.isHorizontal() ? w : "top", b + "px");
2767                        }
2768                    }
2769                    if (("fraction" === t.type && (r.find("." + t.currentClass).text(t.formatFractionCurrent(i + 1)), r.find("." + t.totalClass).text(t.formatFractionTotal(n))), "progressbar" === t.type)) {
2770                        var y;
2771                        y = t.progressbarOpposite ? (this.isHorizontal() ? "vertical" : "horizontal") : this.isHorizontal() ? "horizontal" : "vertical";
2772                        var x = (i + 1) / n,
2773                            T = 1,
2774                            E = 1;
2775                        "horizontal" === y ? (T = x) : (E = x),
2776                            r
2777                                .find("." + t.progressbarFillClass)
2778                                .transform("translate3d(0,0,0) scaleX(" + T + ") scaleY(" + E + ")")
2779                                .transition(this.params.speed);
2780                    }
2781                    "custom" === t.type && t.renderCustom ? (r.html(t.renderCustom(this, i + 1, n)), this.emit("paginationRender", this, r[0])) : this.emit("paginationUpdate", this, r[0]),
2782                        r[this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass"](t.lockClass);
2783                }
2784            },
2785            render: function () {
2786                var e = this.params.pagination;
2787                if (e.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length) {
2788                    var t = this.virtual && this.params.virtual.enabled ? this.virtual.slides.length : this.slides.length,
2789                        i = this.pagination.$el,
2790                        s = "";
2791                    if ("bullets" === e.type) {
2792                        for (var a = this.params.loop ? Math.ceil((t - 2 * this.loopedSlides) / this.params.slidesPerGroup) : this.snapGrid.length, r = 0; r < a; r += 1)
2793                            e.renderBullet ? (s += e.renderBullet.call(this, r, e.bulletClass)) : (s += "<" + e.bulletElement + ' class="' + e.bulletClass + '"></' + e.bulletElement + ">");
2794                        i.html(s), (this.pagination.bullets = i.find("." + e.bulletClass));
2795                    }
2796                    "fraction" === e.type && ((s = e.renderFraction ? e.renderFraction.call(this, e.currentClass, e.totalClass) : '<span class="' + e.currentClass + '"></span> / <span class="' + e.totalClass + '"></span>'), i.html(s)),
2797                        "progressbar" === e.type && ((s = e.renderProgressbar ? e.renderProgressbar.call(this, e.progressbarFillClass) : '<span class="' + e.progressbarFillClass + '"></span>'), i.html(s)),
2798                        "custom" !== e.type && this.emit("paginationRender", this.pagination.$el[0]);
2799                }
2800            },
2801            init: function () {
2802                var e = this,
2803                    t = e.params.pagination;
2804                if (t.el) {
2805                    var i = s(t.el);
2806                    0 !== i.length &&
2807                        (e.params.uniqueNavElements && "string" == typeof t.el && i.length > 1 && 1 === e.$el.find(t.el).length && (i = e.$el.find(t.el)),
2808                        "bullets" === t.type && t.clickable && i.addClass(t.clickableClass),
2809                        i.addClass(t.modifierClass + t.type),
2810                        "bullets" === t.type && t.dynamicBullets && (i.addClass("" + t.modifierClass + t.type + "-dynamic"), (e.pagination.dynamicBulletIndex = 0), t.dynamicMainBullets < 1 && (t.dynamicMainBullets = 1)),
2811                        "progressbar" === t.type && t.progressbarOpposite && i.addClass(t.progressbarOppositeClass),
2812                        t.clickable &&
2813                            i.on("click", "." + t.bulletClass, function (t) {
2814                                t.preventDefault();
2815                                var i = s(this).index() * e.params.slidesPerGroup;
2816                                e.params.loop && (i += e.loopedSlides), e.slideTo(i);
2817                            }),
2818                        n.extend(e.pagination, { $el: i, el: i[0] }));
2819                }
2820            },
2821            destroy: function () {
2822                var e = this.params.pagination;
2823                if (e.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length) {
2824                    var t = this.pagination.$el;
2825                    t.removeClass(e.hiddenClass), t.removeClass(e.modifierClass + e.type), this.pagination.bullets && this.pagination.bullets.removeClass(e.bulletActiveClass), e.clickable && t.off("click", "." + e.bulletClass);
2826                }
2827            },
2828        },
2829        re = {
2830            setTranslate: function () {
2831                if (this.params.scrollbar.el && this.scrollbar.el) {
2832                    var e = this.scrollbar,
2833                        t = this.rtlTranslate,
2834                        i = this.progress,
2835                        s = e.dragSize,
2836                        a = e.trackSize,
2837                        r = e.$dragEl,
2838                        n = e.$el,
2839                        o = this.params.scrollbar,
2840                        l = s,
2841                        d = (a - s) * i;
2842                    t ? ((d = -d) > 0 ? ((l = s - d), (d = 0)) : -d + s > a && (l = a + d)) : d < 0 ? ((l = s + d), (d = 0)) : d + s > a && (l = a - d),
2843                        this.isHorizontal() ? (r.transform("translate3d(" + d + "px, 0, 0)"), (r[0].style.width = l + "px")) : (r.transform("translate3d(0px, " + d + "px, 0)"), (r[0].style.height = l + "px")),
2844                        o.hide &&
2845                            (clearTimeout(this.scrollbar.timeout),
2846                            (n[0].style.opacity = 1),
2847                            (this.scrollbar.timeout = setTimeout(function () {
2848                                (n[0].style.opacity = 0), n.transition(400);
2849                            }, 1e3)));
2850                }
2851            },
2852            setTransition: function (e) {
2853                this.params.scrollbar.el && this.scrollbar.el && this.scrollbar.$dragEl.transition(e);
2854            },
2855            updateSize: function () {
2856                if (this.params.scrollbar.el && this.scrollbar.el) {
2857                    var e = this.scrollbar,
2858                        t = e.$dragEl,
2859                        i = e.$el;
2860                    (t[0].style.width = ""), (t[0].style.height = "");
2861                    var s,
2862                        a = this.isHorizontal() ? i[0].offsetWidth : i[0].offsetHeight,
2863                        r = this.size / this.virtualSize,
2864                        o = r * (a / this.size);
2865                    (s = "auto" === this.params.scrollbar.dragSize ? a * r : parseInt(this.params.scrollbar.dragSize, 10)),
2866                        this.isHorizontal() ? (t[0].style.width = s + "px") : (t[0].style.height = s + "px"),
2867                        (i[0].style.display = r >= 1 ? "none" : ""),
2868                        this.params.scrollbar.hide && (i[0].style.opacity = 0),
2869                        n.extend(e, { trackSize: a, divider: r, moveDivider: o, dragSize: s }),
2870                        e.$el[this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass"](this.params.scrollbar.lockClass);
2871                }
2872            },
2873            getPointerPosition: function (e) {
2874                return this.isHorizontal() ? ("touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].clientX : e.clientX) : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].clientY : e.clientY;
2875            },
2876            setDragPosition: function (e) {
2877                var t,
2878                    i = this.scrollbar,
2879                    s = this.rtlTranslate,
2880                    a = i.$el,
2881                    r = i.dragSize,
2882                    n = i.trackSize,
2883                    o = i.dragStartPos;
2884                (t = (i.getPointerPosition(e) - a.offset()[this.isHorizontal() ? "left" : "top"] - (null !== o ? o : r / 2)) / (n - r)), (t = Math.max(Math.min(t, 1), 0
2884)), s && (t = 1 - t);
2885                var l = this.minTranslate() + (this.maxTranslate() - this.minTranslate()) * t;
2886                this.updateProgress(l), this.setTranslate(l), this.updateActiveIndex(), this.updateSlidesClasses();
2887            },
2888            onDragStart: function (e) {
2889                var t = this.params.scrollbar,
2890                    i = this.scrollbar,
2891                    s = this.$wrapperEl,
2892                    a = i.$el,
2893                    r = i.$dragEl;
2894                (this.scrollbar.isTouched = !0),
2895                    (this.scrollbar.dragStartPos = e.target === r[0] || e.target === r ? i.getPointerPosition(e) - e.target.getBoundingClientRect()[this.isHorizontal() ? "left" : "top"] : null),
2896                    e.preventDefault(),
2897                    e.stopPropagation(),
2898                    s.transition(100),
2899                    r.transition(100),
2900                    i.setDragPosition(e),
2901                    clearTimeout(this.scrollbar.dragTimeout),
2902                    a.transition(0),
2903                    t.hide && a.css("opacity", 1),
2904                    this.params.cssMode && this.$wrapperEl.css("scroll-snap-type", "none"),
2905                    this.emit("scrollbarDragStart", e);
2906            },
2907            onDragMove: function (e) {
2908                var t = this.scrollbar,
2909                    i = this.$wrapperEl,
2910                    s = t.$el,
2911                    a = t.$dragEl;
2912                this.scrollbar.isTouched && (e.preventDefault ? e.preventDefault() : (e.returnValue = !1), t.setDragPosition(e), i.transition(0), s.transition(0), a.transition(0), this.emit("scrollbarDragMove", e));
2913            },
2914            onDragEnd: function (e) {
2915                var t = this.params.scrollbar,
2916                    i = this.scrollbar,
2917                    s = this.$wrapperEl,
2918                    a = i.$el;
2919                this.scrollbar.isTouched &&
2920                    ((this.scrollbar.isTouched = !1),
2921                    this.params.cssMode && (this.$wrapperEl.css("scroll-snap-type", ""), s.transition("")),
2922                    t.hide &&
2923                        (clearTimeout(this.scrollbar.dragTimeout),
2924                        (this.scrollbar.dragTimeout = n.nextTick(function () {
2925                            a.css("opacity", 0), a.transition(400);
2926                        }, 1e3))),
2927                    this.emit("scrollbarDragEnd", e),
2928                    t.snapOnRelease && this.slideToClosest());
2929            },
2930            enableDraggable: function () {
2931                if (this.params.scrollbar.el) {
2932                    var t = this.scrollbar,
2933                        i = this.touchEventsTouch,
2934                        s = this.touchEventsDesktop,
2935                        a = this.params,
2936                        r = t.$el[0],
2937                        n = !(!o.passiveListener || !a.passiveListeners) && { passive: !1, capture: !1 },
2938                        l = !(!o.passiveListener || !a.passiveListeners) && { passive: !0, capture: !1 };
2939                    o.touch
2940                        ? (r.addEventListener(i.start, this.scrollbar.onDragStart, n), r.addEventListener(i.move, this.scrollbar.onDragMove, n), r.addEventListener(i.end, this.scrollbar.onDragEnd, l))
2941                        : (r.addEventListener(s.start, this.scrollbar.onDragStart, n), e.addEventListener(s.move, this.scrollbar.onDragMove, n), e.addEventListener(s.end, this.scrollbar.onDragEnd, l));
2942                }
2943            },
2944            disableDraggable: function () {
2945                if (this.params.scrollbar.el) {
2946                    var t = this.scrollbar,
2947                        i = this.touchEventsTouch,
2948                        s = this.touchEventsDesktop,
2949                        a = this.params,
2950                        r = t.$el[0],
2951                        n = !(!o.passiveListener || !a.passiveListeners) && { passive: !1, capture: !1 },
2952                        l = !(!o.passiveListener || !a.passiveListeners) && { passive: !0, capture: !1 };
2953                    o.touch
2954                        ? (r.removeEventListener(i.start, this.scrollbar.onDragStart, n), r.removeEventListener(i.move, this.scrollbar.onDragMove, n), r.removeEventListener(i.end, this.scrollbar.onDragEnd, l))
2955                        : (r.removeEventListener(s.start, this.scrollbar.onDragStart, n), e.removeEventListener(s.move, this.scrollbar.onDragMove, n), e.removeEventListener(s.end, this.scrollbar.onDragEnd, l));
2956                }
2957            },
2958            init: function () {
2959                if (this.params.scrollbar.el) {
2960                    var e = this.scrollbar,
2961                        t = this.$el,
2962                        i = this.params.scrollbar,
2963                        a = s(i.el);
2964                    this.params.uniqueNavElements && "string" == typeof i.el && a.length > 1 && 1 === t.find(i.el).length && (a = t.find(i.el));
2965                    var r = a.find("." + this.params.scrollbar.dragClass);
2966                    0 === r.length && ((r = s('<div class="' + this.params.scrollbar.dragClass + '"></div>')), a.append(r)), n.extend(e, { $el: a, el: a[0], $dragEl: r, dragEl: r[0] }), i.draggable && e.enableDraggable();
2967                }
2968            },
2969            destroy: function () {
2970                this.scrollbar.disableDraggable();
2971            },
2972        },
2973        ne = {
2974            setTransform: function (e, t) {
2975                var i = this.rtl,
2976                    a = s(e),
2977                    r = i ? -1 : 1,
2978                    n = a.attr("data-swiper-parallax") || "0",
2979                    o = a.attr("data-swiper-parallax-x"),
2980                    l = a.attr("data-swiper-parallax-y"),
2981                    d = a.attr("data-swiper-parallax-scale"),
2982                    h = a.attr("data-swiper-parallax-opacity");
2983                if (
2984                    (o || l ? ((o = o || "0"), (l = l || "0")) : this.isHorizontal() ? ((o = n), (l = "0")) : ((l = n), (o = "0")),
2985                    (o = o.indexOf("%") >= 0 ? parseInt(o, 10) * t * r + "%" : o * t * r + "px"),
2986                    (l = l.indexOf("%") >= 0 ? parseInt(l, 10) * t + "%" : l * t + "px"),
2987                    null != h)
2988                ) {
2989                    var p = h - (h - 1) * (1 - Math.abs(t));
2990                    a[0].style.opacity = p;
2991                }
2992                if (null == d) a.transform("translate3d(" + o + ", " + l + ", 0px)");
2993                else {
2994                    var c = d - (d - 1) * (1 - Math.abs(t));
2995                    a.transform("translate3d(" + o + ", " + l + ", 0px) scale(" + c + ")");
2996                }
2997            },
2998            setTranslate: function () {
2999                var e = this,
3000                    t = e.$el,
3001                    i = e.slides,
3002                    a = e.progress,
3003                    r = e.snapGrid;
3004                t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function (t, i) {
3005                    e.parallax.setTransform(i, a);
3006                }),
3007                    i.each(function (t, i) {
3008                        var n = i.progress;
3009                        e.params.slidesPerGroup > 1 && "auto" !== e.params.slidesPerView && (n += Math.ceil(t / 2) - a * (r.length - 1)),
3010                            (n = Math.min(Math.max(n, -1), 1)),
3011                            s(i)
3012                                .find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]")
3013                                .each(function (t, i) {
3014                                    e.parallax.setTransform(i, n);
3015                                });
3016                    });
3017            },
3018            setTransition: function (e) {
3019                void 0 === e && (e = this.params.speed);
3020                this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function (t, i) {
3021                    var a = s(i),
3022                        r = parseInt(a.attr("data-swiper-parallax-duration"), 10) || e;
3023                    0 === e && (r = 0), a.transition(r);
3024                });
3025            },
3026        },
3027        oe = {
3028            getDistanceBetweenTouches: function (e) {
3029                if (e.targetTouches.length < 2) return 1;
3030                var t = e.targetTouches[0].pageX,
3031                    i = e.targetTouches[0].pageY,
3032                    s = e.targetTouches[1].pageX,
3033                    a = e.targetTouches[1].pageY;
3034                return Math.sqrt(Math.pow(s - t, 2) + Math.pow(a - i, 2));
3035            },
3036            onGestureStart: function (e) {
3037                var t = this.params.zoom,
3038                    i = this.zoom,
3039                    a = i.gesture;
3040                if (((i.fakeGestureTouched = !1), (i.fakeGestureMoved = !1), !o.gestures)) {
3041                    if ("touchstart" !== e.type || ("touchstart" === e.type && e.targetTouches.length < 2)) return;
3042                    (i.fakeGestureTouched = !0), (a.scaleStart = oe.getDistanceBetweenTouches(e));
3043                }
3044                (a.$slideEl && a.$slideEl.length) ||
3045                ((a.$slideEl = s(e.target).closest(".swiper-slide")),
3046                0 === a.$slideEl.length && (a.$slideEl = this.slides.eq(this.activeIndex)),
3047                (a.$imageEl = a.$slideEl.find("img, svg, canvas")),
3048                (a.$imageWrapEl = a.$imageEl.parent("." + t.containerClass)),
3049                (a.maxRatio = a.$imageWrapEl.attr("data-swiper-zoom") || t.maxRatio),
3050                0 !== a.$imageWrapEl.length)
3051                    ? (a.$imageEl.transition(0), (this.zoom.isScaling = !0))
3052                    : (a.$imageEl = void 0);
3053            },
3054            onGestureChange: function (e) {
3055                var t = this.params.zoom,
3056                    i = this.zoom,
3057                    s = i.gesture;
3058                if (!o.gestures) {
3059                    if ("touchmove" !== e.type || ("touchmove" === e.type && e.targetTouches.length < 2)) return;
3060                    (i.fakeGestureMoved = !0), (s.scaleMove = oe.getDistanceBetweenTouches(e));
3061                }
3062                s.$imageEl &&
3063                    0 !== s.$imageEl.length &&
3064                    (o.gestures ? (i.scale = e.scale * i.currentScale) : (i.scale = (s.scaleMove / s.scaleStart) * i.currentScale),
3065                    i.scale > s.maxRatio && (i.scale = s.maxRatio - 1 + Math.pow(i.scale - s.maxRatio + 1, 0.5)),
3066                    i.scale < t.minRatio && (i.scale = t.minRatio + 1 - Math.pow(t.minRatio - i.scale + 1, 0.5)),
3067                    s.$imageEl.transform("translate3d(0,0,0) scale(" + i.scale + ")"));
3068            },
3069            onGestureEnd: function (e) {
3070                var t = this.params.zoom,
3071                    i = this.zoom,
3072                    s = i.gesture;
3073                if (!o.gestures) {
3074                    if (!i.fakeGestureTouched || !i.fakeGestureMoved) return;
3075                    if ("touchend" !== e.type || ("touchend" === e.type && e.changedTouches.length < 2 && !I.android)) return;
3076                    (i.fakeGestureTouched = !1), (i.fakeGestureMoved = !1);
3077                }
3078                s.$imageEl &&
3079                    0 !== s.$imageEl.length &&
3080                    ((i.scale = Math.max(Math.min(i.scale, s.maxRatio), t.minRatio)),
3081                    s.$imageEl.transition(this.params.speed).transform("translate3d(0,0,0) scale(" + i.scale + ")"),
3082                    (i.currentScale = i.scale),
3083                    (i.isScaling = !1),
3084                    1 === i.scale && (s.$slideEl = void 0));
3085            },
3086            onTouchStart: function (e) {
3087                var t = this.zoom,
3088                    i = t.gesture,
3089                    s = t.image;
3090                i.$imageEl &&
3091                    0 !== i.$imageEl.length &&
3092                    (s.isTouched ||
3093                        (I.android && e.preventDefault(),
3094                        (s.isTouched = !0),
3095                        (s.touchesStart.x = "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX),
3096                        (s.touchesStart.y = "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY)));
3097            },
3098            onTouchMove: function (e) {
3099                var t = this.zoom,
3100                    i = t.gesture,
3101                    s = t.image,
3102                    a = t.velocity;
3103                if (i.$imageEl && 0 !== i.$imageEl.length && ((this.allowClick = !1), s.isTouched && i.$slideEl)) {
3104                    s.isMoved ||
3105                        ((s.width = i.$imageEl[0].offsetWidth),
3106                        (s.height = i.$imageEl[0].offsetHeight),
3107                        (s.startX = n.getTranslate(i.$imageWrapEl[0], "x") || 0),
3108                        (s.startY = n.getTranslate(i.$imageWrapEl[0], "y") || 0),
3109                        (i.slideWidth = i.$slideEl[0].offsetWidth),
3110                        (i.slideHeight = i.$slideEl[0].offsetHeight),
3111                        i.$imageWrapEl.transition(0),
3112                        this.rtl && ((s.startX = -s.startX), (s.startY = -s.startY)));
3113                    var r = s.width * t.scale,
3114                        o = s.height * t.scale;
3115                    if (!(r < i.slideWidth && o < i.slideHeight)) {
3116                        if (
3117                            ((s.minX = Math.min(i.slideWidth / 2 - r / 2, 0)),
3118                            (s.maxX = -s.minX),
3119                            (s.minY = Math.min(i.slideHeight / 2 - o / 2, 0)),
3120                            (s.maxY = -s.minY),
3121                            (s.touchesCurrent.x = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX),
3122                            (s.touchesCurrent.y = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY),
3123                            !s.isMoved && !t.isScaling)
3124                        ) {
3125                            if (this.isHorizontal() && ((Math.floor(s.minX) === Math.floor(s.startX) && s.touchesCurrent.x < s.touchesStart.x) || (Math.floor(s.maxX) === Math.floor(s.startX) && s.touchesCurrent.x > s.touchesStart.x)))
3126                                return void (s.isTouched = !1);
3127                            if (!this.isHorizontal() && ((Math.floor(s.minY) === Math.floor(s.startY) && s.touchesCurrent.y < s.touchesStart.y) || (Math.floor(s.maxY) === Math.floor(s.startY) && s.touchesCurrent.y > s.touchesStart.y)))
3128                                return void (s.isTouched = !1);
3129                        }
3130                        e.preventDefault(),
3131                            e.stopPropagation(),
3132                            (s.isMoved = !0),
3133                            (s.currentX = s.touchesCurrent.x - s.touchesStart.x + s.startX),
3134                            (s.currentY = s.touchesCurrent.y - s.touchesStart.y + s.startY),
3135                            s.currentX < s.minX && (s.currentX = s.minX + 1 - Math.pow(s.minX - s.currentX + 1, 0.8)),
3136                            s.currentX > s.maxX && (s.currentX = s.maxX - 1 + Math.pow(s.currentX - s.maxX + 1, 0.8)),
3137                            s.currentY < s.minY && (s.currentY = s.minY + 1 - Math.pow(s.minY - s.currentY + 1, 0.8)),
3138                            s.currentY > s.maxY && (s.currentY = s.maxY - 1 + Math.pow(s.currentY - s.maxY + 1, 0.8)),
3139                            a.prevPositionX || (a.prevPositionX = s.touchesCurrent.x),
3140                            a.prevPositionY || (a.prevPositionY = s.touchesCurrent.y),
3141                            a.prevTime || (a.prevTime = Date.now()),
3142                            (a.x = (s.touchesCurrent.x - a.prevPositionX) / (Date.now() - a.prevTime) / 2),
3143                            (a.y = (s.touchesCurrent.y - a.prevPositionY) / (Date.now() - a.prevTime) / 2),
3144                            Math.abs(s.touchesCurrent.x - a.prevPositionX) < 2 && (a.x = 0),
3145                            Math.abs(s.touchesCurrent.y - a.prevPositionY) < 2 && (a.y = 0),
3146                            (a.prevPositionX = s.touchesCurrent.x),
3147                            (a.prevPositionY = s.touchesCurrent.y),
3148                            (a.prevTime = Date.now()),
3149                            i.$imageWrapEl.transform("translate3d(" + s.currentX + "px, " + s.currentY + "px,0
3149)");
3150                    }
3151                }
3152            },
3153            onTouchEnd: function () {
3154                var e = this.zoom,
3155                    t = e.gesture,
3156                    i = e.image,
3157                    s = e.velocity;
3158                if (t.$imageEl && 0 !== t.$imageEl.length) {
3159                    if (!i.isTouched || !i.isMoved) return (i.isTouched = !1), void (i.isMoved = !1);
3160                    (i.isTouched = !1), (i.isMoved = !1);
3161                    var a = 300,
3162                        r = 300,
3163                        n = s.x * a,
3164                        o = i.currentX + n,
3165                        l = s.y * r,
3166                        d = i.currentY + l;
3167                    0 !== s.x && (a = Math.abs((o - i.currentX) / s.x)), 0 !== s.y && (r = Math.abs((d - i.currentY) / s.y));
3168                    var h = Math.max(a, r);
3169                    (i.currentX = o), (i.currentY = d);
3170                    var p = i.width * e.scale,
3171                        c = i.height * e.scale;
3172                    (i.minX = Math.min(t.slideWidth / 2 - p / 2, 0)),
3173                        (i.maxX = -i.minX),
3174                        (i.minY = Math.min(t.slideHeight / 2 - c / 2, 0)),
3175                        (i.maxY = -i.minY),
3176                        (i.currentX = Math.max(Math.min(i.currentX, i.maxX), i.minX)),
3177                        (i.currentY = Math.max(Math.min(i.currentY, i.maxY), i.minY)),
3178                        t.$imageWrapEl.transition(h).transform("translate3d(" + i.currentX + "px, " + i.currentY + "px,0)");
3179                }
3180            },
3181            onTransitionEnd: function () {
3182                var e = this.zoom,
3183                    t = e.gesture;
3184                t.$slideEl &&
3185                    this.previousIndex !== this.activeIndex &&
3186                    (t.$imageEl.transform("translate3d(0,0,0) scale(1)"), t.$imageWrapEl.transform("translate3d(0,0,0)"), (e.scale = 1), (e.currentScale = 1), (t.$slideEl = void 0), (t.$imageEl = void 0), (t.$imageWrapEl = void 0));
3187            },
3188            toggle: function (e) {
3189                var t = this.zoom;
3190                t.scale && 1 !== t.scale ? t.out() : t.in(e);
3191            },
3192            in: function (e) {
3193                var t,
3194                    i,
3195                    a,
3196                    r,
3197                    n,
3198                    o,
3199                    l,
3200                    d,
3201                    h,
3202                    p,
3203                    c,
3204                    u,
3205                    v,
3206                    f,
3207                    m,
3208                    g,
3209                    b = this.zoom,
3210                    w = this.params.zoom,
3211                    y = b.gesture,
3212                    x = b.image;
3213                (y.$slideEl || ((y.$slideEl = this.clickedSlide ? s(this.clickedSlide) : this.slides.eq(this.activeIndex)), (y.$imageEl = y.$slideEl.find("img, svg, canvas")), (y.$imageWrapEl = y.$imageEl.parent("." + w.containerClass))),
3214                y.$imageEl && 0 !== y.$imageEl.length) &&
3215                    (y.$slideEl.addClass("" + w.zoomedSlideClass),
3216                    void 0 === x.touchesStart.x && e
3217                        ? ((t = "touchend" === e.type ? e.changedTouches[0].pageX : e.pageX), (i = "touchend" === e.type ? e.changedTouches[0].pageY : e.pageY))
3218                        : ((t = x.touchesStart.x), (i = x.touchesStart.y)),
3219                    (b.scale = y.$imageWrapEl.attr("data-swiper-zoom") || w.maxRatio),
3220                    (b.currentScale = y.$imageWrapEl.attr("data-swiper-zoom") || w.maxRatio),
3221                    e
3222                        ? ((m = y.$slideEl[0].offsetWidth),
3223                          (g = y.$slideEl[0].offsetHeight),
3224                          (a = y.$slideEl.offset().left + m / 2 - t),
3225                          (r = y.$slideEl.offset().top + g / 2 - i),
3226                          (l = y.$imageEl[0].offsetWidth),
3227                          (d = y.$imageEl[0].offsetHeight),
3228                          (h = l * b.scale),
3229                          (p = d * b.scale),
3230                          (v = -(c = Math.min(m / 2 - h / 2, 0))),
3231                          (f = -(u = Math.min(g / 2 - p / 2, 0))),
3232                          (n = a * b.scale) < c && (n = c),
3233                          n > v && (n = v),
3234                          (o = r * b.scale) < u && (o = u),
3235                          o > f && (o = f))
3236                        : ((n = 0), (o = 0)),
3237                    y.$imageWrapEl.transition(300).transform("translate3d(" + n + "px, " + o + "px,0)"),
3238                    y.$imageEl.transition(300).transform("translate3d(0,
32380,0) scale(" + b.scale + ")"));
3239            },
3240            out: function () {
3241                var e = this.zoom,
3242                    t = this.params.zoom,
3243                    i = e.gesture;
3244                i.$slideEl || ((i.$slideEl = this.clickedSlide ? s(this.clickedSlide) : this.slides.eq(this.activeIndex)), (i.$imageEl = i.$slideEl.find("img, svg, canvas")), (i.$imageWrapEl = i.$imageEl.parent("." + t.containerClass))),
3245                    i.$imageEl &&
3246                        0 !== i.$imageEl.length &&
3247                        ((e.scale = 1),
3248                        (e.currentScale = 1),
3249                        i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),
3250                        i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),
3251                        i.$slideEl.removeClass("" + t.zoomedSlideClass),
3252                        (i.$slideEl = void 0));
3253            },
3254            enable: function () {
3255                var e = this.zoom;
3256                if (!e.enabled) {
3257                    e.enabled = !0;
3258                    var t = !("touchstart" !== this.touchEvents.start || !o.passiveListener || !this.params.passiveListeners) && { passive: !0, capture: !1 },
3259                        i = !o.passiveListener || { passive: !1, capture: !0 };
3260                    o.gestures
3261                        ? (this.$wrapperEl.on("gesturestart", ".swiper-slide", e.onGestureStart, t),
3262                          this.$wrapperEl.on("gesturechange", ".swiper-slide", e.onGestureChange, t),
3263                          this.$wrapperEl.on("gestureend", ".swiper-slide", e.onGestureEnd, t))
3264                        : "touchstart" === this.touchEvents.start &&
3265                          (this.$wrapperEl.on(this.touchEvents.start, ".swiper-slide", e.onGestureStart, t),
3266                          this.$wrapperEl.on(this.touchEvents.move, ".swiper-slide", e.onGestureChange, i),
3267                          this.$wrapperEl.on(this.touchEvents.end, ".swiper-slide", e.onGestureEnd, t),
3268                          this.touchEvents.cancel && this.$wrapperEl.on(this.touchEvents.cancel, ".swiper-slide", e.onGestureEnd, t)),
3269                        this.$wrapperEl.on(this.touchEvents.move, "." + this.params.zoom.containerClass, e.onTouchMove, i);
3270                }
3271            },
3272            disable: function () {
3273                var e = this.zoom;
3274                if (e.enabled) {
3275                    this.zoom.enabled = !1;
3276                    var t = !("touchstart" !== this.touchEvents.start || !o.passiveListener || !this.params.passiveListeners) && { passive: !0, capture: !1 },
3277                        i = !o.passiveListener || { passive: !1, capture: !0 };
3278                    o.gestures
3279                        ? (this.$wrapperEl.off("gesturestart", ".swiper-slide", e.onGestureStart, t),
3280                          this.$wrapperEl.off("gesturechange", ".swiper-slide", e.onGestureChange, t),
3281                          this.$wrapperEl.off("gestureend", ".swiper-slide", e.onGestureEnd, t))
3282                        : "touchstart" === this.touchEvents.start &&
3283                          (this.$wrapperEl.off(this.touchEvents.start, ".swiper-slide", e.onGestureStart, t),
3284                          this.$wrapperEl.off(this.touchEvents.move, ".swiper-slide", e.onGestureChange, i),
3285                          this.$wrapperEl.off(this.touchEvents.end, ".swiper-slide", e.onGestureEnd, t),
3286                          this.touchEvents.cancel && this.$wrapperEl.off(this.touchEvents.cancel, ".swiper-slide", e.onGestureEnd, t)),
3287                        this.$wrapperEl.off(this.touchEvents.move, "." + this.params.zoom.containerClass, e.onTouchMove, i);
3288                }
3289            },
3290        },
3291        le = {
3292            loadInSlide: function (e, t) {
3293                void 0 === t && (t = !0);
3294                var i = this,
3295                    a = i.params.lazy;
3296                if (void 0 !== e && 0 !== i.slides.length) {
3297                    var r = i.virtual && i.params.virtual.enabled ? i.$wrapperEl.children("." + i.params.slideClass + '[data-swiper-slide-index="' + e + '"]') : i.slides.eq(e),
3298                        n = r.find("." + a.elementClass + ":not(." + a.loadedClass + "):not(." + a.loadingClass + ")");
3299                    !r.hasClass(a.elementClass) || r.hasClass(a.loadedClass) || r.hasClass(a.loadingClass) || (n = n.add(r[0])),
3300                        0 !== n.length &&
3301                            n.each(function (e, n) {
3302                                var o = s(n);
3303                                o.addClass(a.loadingClass);
3304                                var l = o.attr("data-background"),
3305                                    d = o.attr("data-src"),
3306                                    h = o.attr("data-srcset"),
3307                                    p = o.attr("data-sizes");
3308                                i.loadImage(o[0], d || l, h, p, !1, function () {
3309                                    if (null != i && i && (!i || i.params) && !i.destroyed) {
3310                                        if (
3311                                            (l
3312                                                ? (o.css("background-image", 'url("' + l + '")'), o.removeAttr("data-background"))
3313                                                : (h && (o.attr("srcset", h), o.removeAttr("data-srcset")), p && (o.attr("sizes", p), o.removeAttr("data-sizes")), d && (o.attr("src", d), o.removeAttr("data-src"))),
3314                                            o.addClass(a.loadedClass).removeClass(a.loadingClass),
3315                                            r.find("." + a.preloaderClass).remove(),
3316                                            i.params.loop && t)
3317                                        ) {
3318                                            var e = r.attr("data-swiper-slide-index");
3319                                            if (r.hasClass(i.params.slideDuplicateClass)) {
3320                                                var s = i.$wrapperEl.children('[data-swiper-slide-index="' + e + '"]:not(.' + i.params.slideDuplicateClass + ")");
3321                                                i.lazy.loadInSlide(s.index(), !1);
3322                                            } else {
3323                                                var n = i.$wrapperEl.children("." + i.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]');
3324                                                i.lazy.loadInSlide(n.index(), !1);
3325                                            }
3326                                        }
3327                                        i.emit("lazyImageReady", r[0], o[0]);
3328                                    }
3329                                }),
3330                                    i.emit("lazyImageLoad", r[0], o[0]);
3331                            });
3332                }
3333            },
3334            load: function () {
3335                var e = this,
3336                    t = e.$wrapperEl,
3337                    i = e.params,
3338                    a = e.slides,
3339                    r = e.activeIndex,
3340                    n = e.virtual && i.virtual.enabled,
3341                    o = i.lazy,
3342                    l = i.slidesPerView;
3343                function d(e) {
3344                    if (n) {
3345                        if (t.children("." + i.slideClass + '[data-swiper-slide-index="' + e + '"]').length) return !0;
3346                    } else if (a[e]) return !0;
3347                    return !1;
3348                }
3349                function h(e) {
3350                    return n ? s(e).attr("data-swiper-slide-index") : s(e).index();
3351                }
3352                if (("auto" === l && (l = 0), e.lazy.initialImageLoaded || (e.lazy.initialImageLoaded = !0), e.params.watchSlidesVisibility))
3353                    t.children("." + i.slideVisibleClass).each(function (t, i) {
3354                        var a = n ? s(i).attr("data-swiper-slide-index") : s(i).index();
3355                        e.lazy.loadInSlide(a);
3356                    });
3357                else if (l > 1) for (var p = r; p < r + l; p += 1) d(p) && e.lazy.loadInSlide(p);
3358                else e.lazy.loadInSlide(r);
3359                if (o.loadPrevNext)
3360                    if (l > 1 || (o.loadPrevNextAmount && o.loadPrevNextAmount > 1)) {
3361                        for (var c = o.loadPrevNextAmount, u = l, v = Math.min(r + u + Math.max(c, u), a.length), f = Math.max(r - Math.max(u, c), 0), m = r + l; m < v; m += 1) d(m) && e.lazy.loadInSlide(m);
3362                        for (var g = f; g < r; g += 1) d(g) && e.lazy.loadInSlide(g);
3363                    } else {
3364                        var b = t.children("." + i.slideNextClass);
3365                        b.length > 0 && e.lazy.loadInSlide(h(b));
3366                        var w = t.children("." + i.slidePrevClass);
3367                        w.length > 0 && e.lazy.loadInSlide(h(w));
3368                    }
3369            },
3370        },
3371        de = {
3372            LinearSpline: function (e, t) {
3373                var i,
3374                    s,
3375                    a,
3376                    r,
3377                    n,
3378                    o = function (e, t) {
3379                        for (s = -1, i = e.length; i - s > 1; ) e[(a = (i + s) >> 1)] <= t ? (s = a) : (i = a);
3380                        return i;
3381                    };
3382                return (
3383                    (this.x = e),
3384                    (this.y = t),
3385                    (this.lastIndex = e.length - 1),
3386                    (this.interpolate = function (e) {
3387                        return e ? ((n = o(this.x, e)), (r = n - 1), ((e - this.x[r]) * (this.y[n] - this.y[r])) / (this.x[n] - this.x[r]) + this.y[r]) : 0;
3388                    }),
3389                    this
3390                );
3391            },
3392            getInterpolateFunction: function (e) {
3393                this.controller.spline || (this.controller.spline = this.params.loop ? new de.LinearSpline(this.slidesGrid, e.slidesGrid) : new de.LinearSpline(this.snapGrid, e.snapGrid));
3394            },
3395            setTranslate: function (e, t) {
3396                var i,
3397                    s,
3398                    a = this,
3399                    r = a.controller.control;
3400                function n(e) {
3401                    var t = a.rtlTranslate ? -a.translate : a.translate;
3402                    "slide" === a.params.controller.by && (a.controller.getInterpolateFunction(e), (s = -a.controller.spline.interpolate(-t))),
3403                        (s && "container" !== a.params.controller.by) || ((i = (e.maxTranslate() - e.minTranslate()) / (a.maxTranslate() - a.minTranslate())), (s = (t - a.minTranslate()) * i + e.minTranslate())),
3404                        a.params.controller.inverse && (s = e.maxTranslate() - s),
3405                        e.updateProgress(s),
3406                        e.setTranslate(s, a),
3407                        e.updateActiveIndex(),
3408                        e.updateSlidesClasses();
3409                }
3410                if (Array.isArray(r)) for (var o = 0; o < r.length; o += 1) r[o] !== t && r[o] instanceof W && n(r[o]);
3411                else r instanceof W && t !== r && n(r);
3412            },
3413            setTransition: function (e, t) {
3414                var i,
3415                    s = this,
3416                    a = s.controller.control;
3417                function r(t) {
3418                    t.setTransition(e, s),
3419                        0 !== e &&
3420                            (t.transitionStart(),
3421                            t.params.autoHeight &&
3422                                n.nextTick(function () {
3423                                    t.updateAutoHeight();
3424                                }),
3425                            t.$wrapperEl.transitionEnd(function () {
3426                                a && (t.params.loop && "slide" === s.params.controller.by && t.loopFix(), t.transitionEnd());
3427                            }));
3428                }
3429                if (Array.isArray(a)) for (i = 0; i < a.length; i += 1) a[i] !== t && a[i] instanceof W && r(a[i]);
3430                else a instanceof W && t !== a && r(a);
3431            },
3432        },
3433        he = {
3434            makeElFocusable: function (e) {
3435                return e.attr("tabIndex", "0"), e;
3436            },
3437            addElRole: function (e, t) {
3438                return e.attr("role", t), e;
3439            },
3440            addElLabel: function (e, t) {
3441                return e.attr("aria-label", t), e;
3442            },
3443            disableEl: function (e) {
3444                return e.attr("aria-disabled", !0), e;
3445            },
3446            enableEl: function (e) {
3447                return e.attr("aria-disabled", !1), e;
3448            },
3449            onEnterKey: function (e) {
3450                var t = this.params.a11y;
3451                if (13 === e.keyCode) {
3452                    var i = s(e.target);
3453                    this.navigation &&
3454                        this.navigation.$nextEl &&
3455                        i.is(this.navigation.$nextEl) &&
3456                        ((this.isEnd && !this.params.loop) || this.slideNext(), this.isEnd ? this.a11y.notify(t.lastSlideMessage) : this.a11y.notify(t.nextSlideMessage)),
3457                        this.navigation &&
3458                            this.navigation.$prevEl &&
3459                            i.is(this.navigation.$prevEl) &&
3460                            ((this.isBeginning && !this.params.loop) || this.slidePrev(), this.isBeginning ? this.a11y.notify(t.firstSlideMessage) : this.a11y.notify(t.prevSlideMessage)),
3461                        this.pagination && i.is("." + this.params.pagination.bulletClass) && i[0].click();
3462                }
3463            },
3464            notify: function (e) {
3465                var t = this.a11y.liveRegion;
3466                0 !== t.length && (t.html(""), t.html(e));
3467            },
3468            updateNavigation: function () {
3469                if (!this.params.loop && this.navigation) {
3470                    var e = this.navigation,
3471                        t = e.$nextEl,
3472                        i = e.$prevEl;
3473                    i && i.length > 0 && (this.isBeginning ? this.a11y.disableEl(i) : this.a11y.enableEl(i)), t && t.length > 0 && (this.isEnd ? this.a11y.disableEl(t) : this.a11y.enableEl(t));
3474                }
3475            },
3476            updatePagination: function () {
3477                var e = this,
3478                    t = e.params.a11y;
3479                e.pagination &&
3480                    e.params.pagination.clickable &&
3481                    e.pagination.bullets &&
3482                    e.pagination.bullets.length &&
3483                    e.pagination.bullets.each(function (i, a) {
3484                        var r = s(a);
3485                        e.a11y.makeElFocusable(r), e.a11y.addElRole(r, "button"), e.a11y.addElLabel(r, t.paginationBulletMessage.replace(/{{index}}/, r.index() + 1));
3486                    });
3487            },
3488            init: function () {
3489                this.$el.append(this.a11y.liveRegion);
3490                var e,
3491                    t,
3492                    i = this.params.a11y;
3493                this.navigation && this.navigation.$nextEl && (e = this.navigation.$nextEl),
3494                    this.navigation && this.navigation.$prevEl && (t = this.navigation.$prevEl),
3495                    e && (this.a11y.makeElFocusable(e), this.a11y.addElRole(e, "button"), this.a11y.addElLabel(e, i.nextSlideMessage), e.on("key
3495down", this.a11y.onEnterKey)),
3496                    t && (this.a11y.makeElFocusable(t), this.a11y.addElRole(t, "button"), this.a11y.addElLabel(t, i.prevSlideMessage), t.on("keydown", this.a11y.onEnterKey)),
3497                    this.pagination && this.params.pagination.clickable && this.pagination.bullets && this.pagination.bullets.length && this.pagination.$el.on("keydown", "." + this.params.pagination.bulletClass, this.a11y.onEnterKey);
3498            },
3499            destroy: function () {
3500                var e, t;
3501                this.a11y.liveRegion && this.a11y.liveRegion.length > 0 && this.a11y.liveRegion.remove(),
3502                    this.navigation && this.navigation.$nextEl && (e = this.navigation.$nextEl),
3503                    this.navigation && this.navigation.$prevEl && (t = this.navigation.$prevEl),
3504                    e && e.off("keydown", this.a11y.onEnterKey),
3505                    t && t.off("keydown", this.a11y.onEnterKey),
3506                    this.pagination && this.params.pagination.clickable && this.pagination.bullets && this.pagination.bullets.length && this.pagination.$el.off("keydown", "." + this.params.pagination.bulletClass, this.a11y.onEnterKey);
3507            },
3508        },
3509        pe = {
3510            init: function () {
3511                if (this.params.history) {
3512                    if (!t.history || !t.history.pushState) return (this.params.history.enabled = !1), void (this.params.hashNavigation.enabled = !0);
3513                    var e = this.history;
3514                    (e.initialized = !0),
3515                        (e.paths = pe.getPathValues()),
3516                        (e.paths.key || e.paths.value) && (e.scrollToSlide(0, e.paths.value, this.params.runCallbacksOnInit), this.params.history.replaceState || t.addEventListener("popstate", this.history.setHistoryPopState));
3517                }
3518            },
3519            destroy: function () {
3520                this.params.history.replaceState || t.removeEventListener("popstate", this.history.setHistoryPopState);
3521            },
3522            setHistoryPopState: function () {
3523                (this.history.paths = pe.getPathValues()), this.history.scrollToSlide(this.params.speed, this.history.paths.value, !1);
3524            },
3525            getPathValues: function () {
3526                var e = t.location.pathname
3527                        .slice(1)
3528                        .split("/")
3529                        .filter(function (e) {
3530                            return "" !== e;
3531                        }),
3532                    i = e.length;
3533                return { key: e[i - 2], value: e[i - 1] };
3534            },
3535            setHistory: function (e, i) {
3536                if (this.history.initialized && this.params.history.enabled) {
3537                    var s = this.slides.eq(i),
3538                        a = pe.slugify(s.attr("data-history"));
3539                    t.location.pathname.includes(e) || (a = e + "/" + a);
3540                    var r = t.history.state;
3541                    (r && r.value === a) || (this.params.history.replaceState ? t.history.replaceState({ value: a }, null, a) : t.history.pushState({ value: a }, null, a));
3542                }
3543            },
3544            slugify: function (e) {
3545                return e
3546                    .toString()
3547                    .replace(/\s+/g, "-")
3548                    .replace(/[^\w-]+/g, "")
3549                    .replace(/--+/g, "-")
3550                    .replace(/^-+/, "")
3551                    .replace(/-+$/, "");
3552            },
3553            scrollToSlide: function (e, t, i) {
3554                if (t)
3555                    for (var s = 0, a = this.slides.length; s < a; s += 1) {
3556                        var r = this.slides.eq(s);
3557                        if (pe.slugify(r.attr("data-history")) === t && !r.hasClass(this.params.slideDuplicateClass)) {
3558                            var n = r.index();
3559                            this.slideTo(n, e, i);
3560                        }
3561                    }
3562                else this.slideTo(0, e, i);
3563            },
3564        },
3565        ce = {
3566            onHashCange: function () {
3567                var t = e.location.hash.replace("#", "");
3568                if (t !== this.slides.eq(this.activeIndex).attr("data-hash")) {
3569                    var i = this.$wrapperEl.children("." + this.params.slideClass + '[data-hash="' + t + '"]').index();
3570                    if (void 0 === i) return;
3571                    this.slideTo(i);
3572                }
3573            },
3574            setHash: function () {
3575                if (this.hashNavigation.initialized && this.params.hashNavigation.enabled)
3576                    if (this.params.hashNavigation.replaceState && t.history && t.history.replaceState) t.history.replaceState(null, null, "#" + this.slides.eq(this.activeIndex).attr("data-hash") || "");
3577                    else {
3578                        var i = this.slides.eq(this.activeIndex),
3579                            s = i.attr("data-hash") || i.attr("data-history");
3580                        e.location.hash = s || "";
3581                    }
3582            },
3583            init: function () {
3584                if (!(!this.params.hashNavigation.enabled || (this.params.history && this.params.history.enabled))) {
3585                    this.hashNavigation.initialized = !0;
3586                    var i = e.location.hash.replace("#", "");
3587                    if (i)
3588                        for (var a = 0, r = this.slides.length; a < r; a += 1) {
3589                            var n = this.slides.eq(a);
3590                            if ((n.attr("data-hash") || n.attr("data-history")) === i && !n.hasClass(this.params.slideDuplicateClass)) {
3591                                var o = n.index();
3592                                this.slideTo(o, 0, this.params.runCallbacksOnInit, !0);
3593                            }
3594                        }
3595                    this.params.hashNavigation.watchState && s(t).on("hashchange", this.hashNavigation.onHashCange);
3596                }
3597            },
3598            destroy: function () {
3599                this.params.hashNavigation.watchState && s(t).off("hashchange", this.hashNavigation.onHashCange);
3600            },
3601        },
3602        ue = {
3603            run: function () {
3604                var e = this,
3605                    t = e.slides.eq(e.activeIndex),
3606                    i = e.params.autoplay.delay;
3607                t.attr("data-swiper-autoplay") && (i = t.attr("data-swiper-autoplay") || e.params.autoplay.delay),
3608                    clearTimeout(e.autoplay.timeout),
3609                    (e.autoplay.timeout = n.nextTick(function () {
3610                        e.params.autoplay.reverseDirection
3611                            ? e.params.loop
3612                                ? (e.loopFix(), e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay"))
3613                                : e.isBeginning
3614                                ? e.params.autoplay.stopOnLastSlide
3615                                    ? e.autoplay.stop()
3616                                    : (e.slideTo(e.slides.length - 1, e.params.speed, !0, !0), e.emit("autoplay"))
3617                                : (e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay"))
3618                            : e.params.loop
3619                            ? (e.loopFix(), e.slideNext(e.params.speed, !0, !0), e.emit("autoplay"))
3620                            : e.isEnd
3621                            ? e.params.autoplay.stopOnLastSlide
3622                                ? e.autoplay.stop()
3623                                : (e.slideTo(0, e.params.speed, !0, !0), e.emit("autoplay"))
3624                            : (e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")),
3625                            e.params.cssMode && e.autoplay.running && e.autoplay.run();
3626                    }, i));
3627            },
3628            start: function () {
3629                return void 0 === this.autoplay.timeout && !this.autoplay.running && ((this.autoplay.running = !0), this.emit
3629("autoplayStart"), this.autoplay.run(), !0);
3630            },
3631            stop: function () {
3632                return (
3633                    !!this.autoplay.running &&
3634                    void 0 !== this.autoplay.timeout &&
3635                    (this.autoplay.timeout && (clearTimeout(this.autoplay.timeout), (this.autoplay.timeout = void 0)), (this.autoplay.running = !1), this.emit("autoplayStop"), !0)
3636                );
3637            },
3638            pause: function (e) {
3639                this.autoplay.running &&
3640                    (this.autoplay.paused ||
3641                        (this.autoplay.timeout && clearTimeout(this.autoplay.timeout),
3642                        (this.autoplay.paused = !0),
3643                        0 !== e && this.params.autoplay.waitForTransition
3644                            ? (this.$wrapperEl[0].addEventListener("transitionend", this.autoplay.onTransitionEnd), this.$wrapperEl[0].addEventListener("webkitTransitionEnd", this.autoplay.onTransitionEnd))
3645                            : ((this.autoplay.paused = !1), this.autoplay.run())));
3646            },
3647        },
3648        ve = {
3649            setTranslate: function () {
3650                for (var e = this.slides, t = 0; t < e.length; t += 1) {
3651                    var i = this.slides.eq(t),
3652                        s = -i[0].swiperSlideOffset;
3653                    this.params.virtualTranslate || (s -= this.translate);
3654                    var a = 0;
3655                    this.isHorizontal() || ((a = s), (s = 0));
3656                    var r = this.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(i[0].progress), 0) : 1 + Math.min(Math.max(i[0].progress, -1), 0);
3657                    i.css({ opacity: r }).transform("translate3d(" + s + "px, " + a + "px, 0px)");
3658                }
3659            },
3660            setTransition: function (e) {
3661                var t = this,
3662                    i = t.slides,
3663                    s = t.$wrapperEl;
3664                if ((i.transition(e), t.params.virtualTranslate && 0 !== e)) {
3665                    var a = !1;
3666                    i.transitionEnd(function () {
3667                        if (!a && t && !t.destroyed) {
3668                            (a = !0), (t.animating = !1);
3669                            for (var e = ["webkitTransitionEnd", "transitionend"], i = 0; i < e.length; i += 1) s.trigger(e[i]);
3670                        }
3671                    });
3672                }
3673            },
3674        },
3675        fe = {
3676            setTranslate: function () {
3677                var e,
3678                    t = this.$el,
3679                    i = this.$wrapperEl,
3680                    a = this.slides,
3681                    r = this.width,
3682                    n = this.height,
3683                    o = this.rtlTranslate,
3684                    l = this.size,
3685                    d = this.params.cubeEffect,
3686                    h = this.isHorizontal(),
3687                    p = this.virtual && this.params.virtual.enabled,
3688                    c = 0;
3689                d.shadow &&
3690                    (h
3691                        ? (0 === (e = i.find(".swiper-cube-shadow")).length && ((e = s('<div class="swiper-cube-shadow"></div>')), i.append(e)), e.css({ height: r + "px" }))
3692                        : 0 === (e = t.find(".swiper-cube-shadow")).length && ((e = s('<div class="swiper-cube-shadow"></div>')), t.append(e)));
3693                for (var u = 0; u < a.length; u += 1) {
3694                    var v = a.eq(u),
3695                        f = u;
3696                    p && (f = parseInt(v.attr("data-swiper-slide-index"), 10));
3697                    var m = 90 * f,
3698                        g = Math.floor(m / 360);
3699                    o && ((m = -m), (g = Math.floor(-m / 360)));
3700                    var b = Math.max(Math.min(v[0].progress, 1), -1),
3701                        w = 0,
3702                        y = 0,
3703                        x = 0;
3704                    f % 4 == 0 ? ((w = 4 * -g * l), (x = 0)) : (f - 1) % 4 == 0 ? ((w = 0), (x = 4 * -g * l)) : (f - 2) % 4 == 0 ? ((w = l + 4 * g * l), (x = l)) : (f - 3) % 4 == 0 && ((w = -l), (x = 3 * l + 4 * l * g)),
3705                        o && (w = -w),
3706                        h || ((y = w), (w = 0));
3707                    var T = "rotateX(" + (h ? 0 : -m) + "deg) rotateY(" + (h ? m : 0) + "deg) translate3d(" + w + "px, " + y + "px, " + x + "px)";
3708                    if ((b <= 1 && b > -1 && ((c = 90 * f + 90 * b), o && (c = 90 * -f - 90 * b)), v.transform(T), d.slideShadows)) {
3709                        var E = h ? v.find(".swiper-slide-shadow-left") : v.find(".swiper-slide-shadow-top"),
3710                            S = h ? v.find(".swiper-slide-shadow-right") : v.find(".swiper-slide-shadow-bottom");
3711                        0 === E.length && ((E = s('<div class="swiper-slide-shadow-' + (h ? "left" : "top") + '"></div>')), v.append(E)),
3712                            0 === S.length && ((S = s('<div class="swiper-slide-shadow-' + (h ? "right" : "bottom") + '"></div>')), v.append(S)),
3713                            E.length && (E[0].style.opacity = Math.max(-b, 0)),
3714                            S.length && (S[0].style.opacity = Math.max(b, 0));
3715                    }
3716                }
3717                if (
3718                    (i.css({ "-webkit-transform-origin": "50% 50% -" + l / 2 + "px", "-moz-transform-origin": "50% 50% -" + l / 2 + "px", "-ms-transform-origin": "50% 50% -" + l / 2 + "px", "transform-origin": "50% 50% -" + l / 2 + "px" }),
3719                    d.shadow)
3720                )
3721                    if (h) e.transform("translate3d(0px, " + (r / 2 + d.shadowOffset) + "px, " + -r / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + d.shadowScale + ")");
3722                    else {
3723                        var C = Math.abs(c) - 90 * Math.floor(Math.abs(c) / 90),
3724                            M = 1.5 - (Math.sin((2 * C * Math.PI) / 360) / 2 + Math.cos((2 * C * Math.PI) / 360) / 2),
3725                            P = d.shadowScale,
3726                            z = d.shadowScale / M,
3727                            k = d.shadowOffset;
3728                        e.transform("scale3d(" + P + ", 1, " + z + ") translate3d(0px, " + (n / 2 + k) + "px, " + -n / 2 / z + "px) rotateX(-90deg)");
3729                    }
3730                var $ = j.isSafari || j.isUiWebView ? -l / 2 : 0;
3731                i.transform("translate3d(0px,0," + $ + "px) rotateX(" + (this.isHorizontal() ? 0 : c) + "deg) rotateY(" + (this.isHorizontal() ? -c : 0) + "deg)");
3732            },
3733            setTransition: function (e) {
3734                var t = this.$el;
3735                this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),
3736                    this.params.cubeEffect.shadow && !this.isHorizontal() && t.find(".swiper-cube-shadow").transition(e);
3737            },
3738        },
3739        me = {
3740            setTranslate: function () {
3741                for (var e = this.slides, t = this.rtlTranslate, i = 0; i < e.length; i += 1) {
3742                    var a = e.eq(i),
3743                        r = a[0].progress;
3744                    this.params.flipEffect.limitRotation && (r = Math.max(Math.min(a[0].progress, 1), -1));
3745                    var n = -180 * r,
3746                        o = 0,
3747                        l = -a[0].swiperSlideOffset,
3748                        d = 0;
3749                    if ((this.isHorizontal() ? t && (n = -n) : ((d = l), (l = 0), (o = -n), (n = 0)), (a[0].style.zIndex = -Math.abs(Math.round(r)) + e.length), this.params.flipEffect.slideShadows)) {
3750                        var h = this.isHorizontal() ? a.find(".swiper-slide-shadow-left") : a.find(".swiper-slide-shadow-top"),
3751                            p = this.isHorizontal() ? a.find(".swiper-slide-shadow-right") : a.find(".swiper-slide-shadow-bottom");
3752                        0 === h.length && ((h = s('<div class="swiper-slide-shadow-' + (this.isHorizontal() ? "left" : "top") + '"></div>')), a.append(h)),
3753                            0 === p.length && ((p = s('<div class="swiper-slide-shadow-' + (this.isHorizontal() ? "right" : "bottom") + '"></div>')), a.append(p)),
3754                            h.length && (h[0].style.opacity = Math.max(-r, 0)),
3755                            p.length && (p[0].style.opacity = Math.max(r, 0));
3756                    }
3757                    a.transform("translate3d(" + l + "px, " + d + "px, 0px) rotateX(" + o + "deg) rotateY(" + n + "deg)");
3758                }
3759            },
3760            setTransition: function (e) {
3761                var t = this,
3762                    i = t.slides,
3763                    s = t.activeIndex,
3764                    a = t.$wrapperEl;
3765                if ((i.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), t.params.virtualTranslate && 0 !== e)) {
3766                    var r = !1;
3767                    i.eq(s).transitionEnd(function () {
3768                        if (!r && t && !t.destroyed) {
3769                            (r = !0), (t.animating = !1);
3770                            for (var e = ["webkitTransitionEnd", "transitionend"], i = 0; i < e.length; i += 1) a.trigger(e[i]);
3771                        }
3772                    });
3773                }
3774            },
3775        },
3776        ge = {
3777            setTranslate: function () {
3778                for (
3779                    var e = this.width,
3780                        t = this.height,
3781                        i = this.slides,
3782                        a = this.$wrapperEl,
3783                        r = this.slidesSizesGrid,
3784                        n = this.params.coverflowEffect,
3785                        l = this.isHorizontal(),
3786                        d = this.translate,
3787                        h = l ? e / 2 - d : t / 2 - d,
3788                        p = l ? n.rotate : -n.rotate,
3789                        c = n.depth,
3790                        u = 0,
3791                        v = i.length;
3792                    u < v;
3793                    u += 1
3794                ) {
3795                    var f = i.eq(u),
3796                        m = r[u],
3797                        g = ((h - f[0].swiperSlideOffset - m / 2) / m) * n.modifier,
3798                        b = l ? p * g : 0,
3799                        w = l ? 0 : p * g,
3800                        y = -c * Math.abs(g),
3801                        x = l ? 0 : n.stretch * g,
3802                        T = l ? n.stretch * g : 0;
3803                    Math.abs(T) < 0.001 && (T = 0), Math.abs(x) < 0.001 && (x = 0), Math.abs(y) < 0.001 && (y = 0), Math.abs(b) < 0.001 && (b = 0), Math.abs(w) < 0.001 && (w = 0);
3804                    var E = "translate3d(" + T + "px," + x + "px," + y + "px)  rotateX(" + w + "deg) rotateY(" + b + "deg)";
3805                    if ((f.transform(E), (f[0].style.zIndex = 1 - Math.abs(Math.round(g))), n.slideShadows)) {
3806                        var S = l ? f.find(".swiper-slide-shadow-left") : f.f
3806ind(".swiper-slide-shadow-top"),
3807                            C = l ? f.find(".swiper-slide-shadow-right") : f.find(".swiper-slide-shadow-bottom");
3808                        0 === S.length && ((S = s('<div class="swiper-slide-shadow-' + (l ? "left" : "top") + '"></div>')), f.append(S)),
3809                            0 === C.length && ((C = s('<div class="swiper-slide-shadow-' + (l ? "right" : "bottom") + '"></div>')), f.append(C)),
3810                            S.length && (S[0].style.opacity = g > 0 ? g : 0),
3811                            C.length && (C[0].style.opacity = -g > 0 ? -g : 0);
3812                    }
3813                }
3814                (o.pointerEvents || o.prefixedPointerEvents) && (a[0].style.perspectiveOrigin = h + "px 50%");
3815            },
3816            setTransition: function (e) {
3817                this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e);
3818            },
3819        },
3820        be = {
3821            init: function () {
3822                var e = this.params.thumbs,
3823                    t = this.constructor;
3824                e.swiper instanceof t
3825                    ? ((this.thumbs.swiper = e.swiper),
3826                      n.extend(this.thumbs.swiper.originalParams, { watchSlidesProgress: !0, slideToClickedSlide: !1 }),
3827                      n.extend(this.thumbs.swiper.params, { watchSlidesProgress: !0, slideToClickedSlide: !1 }))
3828                    : n.isObject(e.swiper) && ((this.thumbs.swiper = new t(n.extend({}, e.swiper, { watchSlidesVisibility: !0, watchSlidesProgress: !0, slideToClickedSlide: !1 }))), (this.thumbs.swiperCreated = !0)),
3829                    this.thumbs.swiper.$el.addClass(this.params.thumbs.thumbsContainerClass),
3830                    this.thumbs.swiper.on("tap", this.thumbs.onThumbClick);
3831            },
3832            onThumbClick: function () {
3833                var e = this.thumbs.swiper;
3834                if (e) {
3835                    var t = e.clickedIndex,
3836                        i = e.clickedSlide;
3837                    if (!((i && s(i).hasClass(this.params.thumbs.slideThumbActiveClass)) || null == t)) {
3838                        var a;
3839                        if (((a = e.params.loop ? parseInt(s(e.clickedSlide).attr("data-swiper-slide-index"), 10) : t), this.params.loop)) {
3840                            var r = this.activeIndex;
3841                            this.slides.eq(r).hasClass(this.params.slideDuplicateClass) && (this.loopFix(), (this._clientLeft = this.$wrapperEl[0].clientLeft), (r = this.activeIndex));
3842                            var n = this.slides
3843                                    .eq(r)
3844                                    .prevAll('[data-swiper-slide-index="' + a + '"]')
3845                                    .eq(0)
3846                                    .index(),
3847                                o = this.slides
3848                                    .eq(r)
3849                                    .nextAll('[data-swiper-slide-index="' + a + '"]')
3850                                    .eq(0)
3851                                    .index();
3852                            a = void 0 === n ? o : void 0 === o ? n : o - r < r - n ? o : n;
3853                        }
3854                        this.slideTo(a);
3855                    }
3856                }
3857            },
3858            update: function (e) {
3859                var t = this.thumbs.swiper;
3860                if (t) {
3861                    var i = "auto" === t.params.slidesPerView ? t.slidesPerViewDynamic() : t.params.slidesPerView;
3862                    if (this.realIndex !== t.realIndex) {
3863                        var s,
3864                            a = t.activeIndex;
3865                        if (t.params.loop) {
3866                            t.slides.eq(a).hasClass(t.params.slideDuplicateClass) && (t.loopFix(), (t._clientLeft = t.$wrapperEl[0].clientLeft), (a = t.activeIndex));
3867                            var r = t.slides
3868                                    .eq(a)
3869                                    .prevAll('[data-swiper-slide-index="' + this.realIndex + '"]')
3870                                    .eq(0)
3871                                    .index(),
3872                                n = t.slides
3873                                    .eq(a)
3874                                    .nextAll('[data-swiper-slide-index="' + this.realIndex + '"]')
3875                                    .eq(0)
3876                                    .index();
3877                            s = void 0 === r ? n : void 0 === n ? r : n - a == a - r ? a : n - a < a - r ? n : r;
3878                        } else s = this.realIndex;
3879                        t.visibleSlidesIndexes &&
3880                            t.visibleSlidesIndexes.indexOf(s) < 0 &&
3881                            (t.params.centeredSlides ? (s = s > a ? s - Math.floor(i / 2) + 1 : s + Math.floor(i / 2) - 1) : s > a && (s = s - i + 1), t.slideTo(s, e ? 0 : void 0));
3882                    }
3883                    var o = 1,
3884                        l = this.params.thumbs.slideThumbActiveClass;
3885                    if (
3886                        (this.params.slidesPerView > 1 && !this.params.centeredSlides && (o = this.params.slidesPerView),
3887                        this.params.thumbs.multipleActiveThumbs || (o = 1),
3888                        (o = Math.floor(o)),
3889                        t.slides.removeClass(l),
3890                        t.params.loop || (t.params.virtual && t.params.virtual.enabled))
3891                    )
3892                        for (var d = 0; d < o; d += 1) t.$wrapperEl.children('[data-swiper-slide-index="' + (this.realIndex + d) + '"]').addClass(l);
3893                    else for (var h = 0; h < o; h += 1) t.slides.eq(this.realIndex + h).addClass(l);
3894                }
3895            },
3896        },
3897        we = [
3898            R,
3899            q,
3900            K,
3901            U,
3902            Z,
3903            J,
3904            te,
3905            {
3906                name: "mousewheel",
3907                params: { mousewheel: { enabled: !1, releaseOnEdges: !1, invert: !1, forceToAxis: !1, sensitivity: 1, eventsTarged: "container" } },
3908                create: function () {
3909                    n.extend(this, {
3910                        mousewheel: {
3911                            enabled: !1,
3912                            enable: ie.enable.bind(this),
3913                            disable: ie.disable.bind(this),
3914                            handle: ie.handle.bind(this),
3915                            handleMouseEnter: ie.handleMouseEnter.bind(this),
3916                            handleMouseLeave: ie.handleMouseLeave.bind(this),
3917                            animateSlider: ie.animateSlider.bind(this),
3918                            releaseScroll: ie.releaseScroll.bind(this),
3919                            lastScrollTime: n.now(),
3920                            lastEventBeforeSnap: void 0,
3921                            recentWheelEvents: [],
3922                        },
3923                    });
3924                },
3925                on: {
3926                    init: function () {
3927                        !this.params.mousewheel.enabled && this.params.cssMode && this.mousewheel.disable(), this.params.mousewheel.enabled && this.mousewheel.enable();
3928                    },
3929                    destroy: function () {
3930                        this.params.cssMode && this.mousewheel.enable(), this.mousewheel.enabled && this.mousewheel.disable();
3931                    },
3932                },
3933            },
3934            {
3935                name: "navigation",
3936                params: { navigation: { nextEl: null, prevEl: null, hideOnClick: !1, disabledClass: "swiper-button-disabled", hiddenClass: "swiper-button-hidden", lockClass: "swiper-button-lock" } },
3937                create: function () {
3938                    n.extend(this, { navigation: { init: se.init.bind(this), update: se.update.bind(this), destroy: se.destroy.bind(this), onNextClick: se.onNextClick.bind(this), onPrevClick: se.onPrevClick.bind(this) } });
3939                },
3940                on: {
3941                    init: function () {
3942                        this.navigation.init(), this.navigation.update();
3943                    },
3944                    toEdge: function () {
3945                        this.navigation.update();
3946                    },
3947                    fromEdge: function () {
3948                        this.navigation.update();
3949                    },
3950                    destroy: function () {
3951                        this.navigation.destroy();
3952                    },
3953                    click: function (e) {
3954                        var t,
3955                            i = this.navigation,
3956                            a = i.$nextEl,
3957                            r = i.$prevEl;
3958                        !this.params.navigation.hideOnClick ||
3959                            s(e.target).is(r) ||
3960                            s(e.target).is(a) ||
3961                            (a ? (t = a.hasClass(this.params.navigation.hiddenClass)) : r && (t = r.hasClass(this.params.navigation.hiddenClass)),
3962                            !0 === t ? this.emit("navigationShow", this) : this.emit("navigationHide", this),
3963                            a && a.toggleClass(this.params.navigation.hiddenClass),
3964                            r && r.toggleClass(this.params.navigation.hiddenClass));
3965                    },
3966                },
3967            },
3968            {
3969                name: "pagination",
3970                params: {
3971                    pagination: {
3972                        el: null,
3973                        bulletElement: "span",
3974                        clickable: !1,
3975                        hideOnClick: !1,
3976                        renderBullet: null,
3977                        renderProgressbar: null,
3978                        renderFraction: null,
3979                        renderCustom: null,
3980                        progressbarOpposite: !1,
3981                        type: "bullets",
3982                        dynamicBullets: !1,
3983                        dynamicMainBullets: 1,
3984                        formatFractionCurrent: function (e) {
3985                            return e;
3986                        },
3987                        formatFractionTotal: function (e) {
3988                            return e;
3989                        },
3990                        bulletClass: "swiper-pagination-bullet",
3991                        bulletActiveClass: "swiper-pagination-bullet-active",
3992                        modifierClass: "swiper-pagination-",
3993                        currentClass: "swiper-pagination-current",
3994                        totalClass: "swiper-pagination-total",
3995                        hiddenClass: "swiper-pagination-hidden",
3996                        progressbarFillClass: "swiper-pagination-progressbar-fill",
3997                        progressbarOppositeClass: "swiper-pagination-progressbar-opposite",
3998                        clickableClass: "swiper-pagination-clickable",
3999                        lockClass: "swiper-pagination-lock",
4000                    },
4001                },
4002                create: function () {
4003                    n.extend(this, { pagination: { init: ae.init.bind(this), render: ae.render.bind(this), update: ae.update.bind(this), destroy: ae.destroy.bind(this), dynamicBulletIndex: 0 } });
4004                },
4005                on: {
4006                    init: function () {
4007                        this.pagination.init(), this.pagination.render(), this.pagination.update();
4008                    },
4009                    activeIndexChange: function () {
4010                        this.params.loop ? this.pagination.update() : void 0 === this.snapIndex && this.pagination.update();
4011                    },
4012                    snapIndexChange: function () {
4013                        this.params.loop || this.pagination.update();
4014                    },
4015                    slidesLengthChange: function () {
4016                        this.params.loop && (this.pagination.render(), this.pagination.update());
4017                    },
4018                    snapGridLengthChange: function () {
4019                        this.params.loop || (this.pagination.render(), this.pagination.update());
4020                    },
4021                    destroy: function () {
4022                        this.pagination.destroy();
4023                    },
4024                    click: function (e) {
4025                        this.params.pagination.el &&
4026                            this.params.pagination.hideOnClick &&
4027                            this.pagination.$el.length > 0 &&
4028                            !s(e.target).hasClass(this.params.pagination.bulletClass) &&
4029                            (!0 === this.pagination.$el.hasClass(this.params.pagination.hiddenClass) ? this.emit("paginationShow", this) : this.emit("paginationHide", this),
4030                            this.pagination.$el.toggleClass(this.params.pagination.hiddenClass));
4031                    },
4032                },
4033            },
4034            {
4035                name: "scrollbar",
4036                params: { scrollbar: { el: null, dragSize: "auto", hide: !1, draggable: !1, snapOnRelease: !0, lockClass: "swiper-scrollbar-lock", dragClass: "swiper-scrollbar-drag" } },
4037                create: function () {
4038                    n.extend(this, {
4039                        scrollbar: {
4040                            init: re.init.bind(this),
4041                            destroy: re.destroy.bind(this),
4042                            updateSize: re.updateSize.bind(this),
4043                            setTranslate: re.setTranslate.bind(this),
4044                            setTransition: re.setTransition.bind(this),
4045                            enableDraggable: re.enableDraggable.bind(this),
4046                            disableDraggable: re.disableDraggable.bind(this),
4047                            setDragPosition: re.setDragPosition.bind(this),
4048                            getPointerPosition: re.getPointerPosition.bind(this),
4049                            onDragStart: re.onDragStart.bind(this),
4050                            onDragMove: re.onDragMove.bind(this),
4051                            onDragEnd: re.onDragEnd.bind(this),
4052                            isTouched: !1,
4053                            timeout: null,
4054                            dragTimeout: null,
4055                        },
4056                    });
4057                },
4058                on: {
4059                    init: function () {
4060                        this.scrollbar.init(), this.scrollbar.updateSize(), this.scrollbar.setTranslate();
4061                    },
4062                    update: function () {
4063                        this.scrollbar.updateSize();
4064                    },
4065                    resize: function () {
4066                        this.scrollbar.updateSize();
4067                    },
4068                    observerUpdate: function () {
4069                        this.scrollbar.updateSize();
4070                    },
4071                    setTranslate: function () {
4072                        this.scrollbar.setTranslate();
4073                    },
4074                    setTransition: function (e) {
4075                        this.scrollbar.setTransition(e);
4076                    },
4077                    destroy: function () {
4078                        this.scrollbar.destroy();
4079                    },
4080                },
4081            },
4082            {
4083                name: "parallax",
4084                params: { parallax: { enabled: !1 } },
4085                create: function () {
4086                    n.extend(this, { parallax: { setTransform: ne.setTransform.bind(this), setTranslate: ne.setTranslate.bind(this), setTransition: ne.setTransition.bind(this) } });
4087                },
4088                on: {
4089                    beforeInit: function () {
4090                        this.params.parallax.enabled && ((this.params.watchSlidesProgress = !0), (this.originalParams.watchSlidesProgress = !0));
4091                    },
4092                    init: function () {
4093                        this.params.parallax.enabled && this.parallax.setTranslate();
4094                    },
4095                    setTranslate: function () {
4096                        this.params.parallax.enabled && this.parallax.setTranslate();
4097                    },
4098                    setTransition: function (e) {
4099                        this.params.parallax.enabled && this.parallax.setTransition(e);
4100                    },
4101                },
4102            },
4103            {
4104                name: "zoom",
4105                params: { zoom: { enabled: !1, maxRatio: 3, minRatio: 1, toggle: !0, containerClass: "swiper-zoom-container", zoomedSlideClass: "swiper-slide-zoomed" } },
4106                create: function () {
4107                    var e = this,
4108                        t = {
4109                            enabled: !1,
4110                            scale: 1,
4111                            currentScale: 1,
4112                            isScaling: !1,
4113                            gesture: { $slideEl: void 0, slideWidth: void 0, slideHeight: void 0, $imageEl: void 0, $imageWrapEl: void 0, maxRatio: 3 },
4114                            image: {
4115                                isTouched: void 0,
4116                                isMoved: void 0,
4117                                currentX: void 0,
4118                                currentY: void 0,
4119                                minX: void 0,
4120                                minY: void 0,
4121                                maxX: void 0,
4122                                maxY: void 0,
4123                                width: void 0,
4124                                height: void 0,
4125                                startX: void 0,
4126                                startY: void 0,
4127                                touchesStart: {},
4128                                touchesCurrent: {},
4129                            },
4130                            velocity: { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0 },
4131                        };
4132                    "onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out".split(" ").forEach(function (i) {
4133                        t[i] = oe[i].bind(e);
4134                    }),
4135                        n.extend(e, { zoom: t });
4136                    var i = 1;
4137                    Object.defineProperty(e.zoom, "scale", {
4138                        get: function () {
4139                            return i;
4140                        },
4141                        set: function (t) {
4142                            if (i !== t) {
4143                                var s = e.zoom.gesture.$imageEl ? e.zoom.gesture.$imageEl[0] : void 0,
4144                                    a = e.zoom.gesture.$slideEl ? e.zoom.gesture.$slideEl[0] : void 0;
4145                                e.emit("zoomChange", t, s, a);
4146                            }
4147                            i = t;
4148                        },
4149                    });
4150                },
4151                on: {
4152                    init: function () {
4153                        this.params.zoom.enabled && this.zoom.enable();
4154                    },
4155                    destroy: function () {
4156                        this.zoom.disable();
4157                    },
4158                    touchStart: function (e) {
4159                        this.zoom.enabled && this.zoom.onTouchStart(e);
4160                    },
4161                    touchEnd: function (e) {
4162                        this.zoom.enabled && this.zoom.onTouchEnd(e);
4163                    },
4164                    doubleTap: function (e) {
4165                        this.params.zoom.enabled && this.zoom.enabled && this.params.zoom.toggle && this.zoom.toggle(e);
4166                    },
4167                    transitionEnd: function () {
4168                        this.zoom.enabled && this.params.zoom.enabled && this.zoom.onTransitionEnd();
4169                    },
4170                    slideChange: function () {
4171                        this.zoom.enabled && this.params.zoom.enabled && this.params.cssMode && this.zoom.onTransitionEnd();
4172                    },
4173                },
4174            },
4175            {
4176                name: "lazy",
4177                params: {
4178                    lazy: {
4179                        enabled: !1,
4180                        loadPrevNext: !1,
4181                        loadPrevNextAmount: 1,
4182                        loadOnTransitionStart: !1,
4183                        elementClass: "swiper-lazy",
4184                        loadingClass: "swiper-lazy-loading",
4185                        loadedClass: "swiper-lazy-loaded",
4186                        preloaderClass: "swiper-lazy-preloader",
4187                    },
4188                },
4189                create: function () {
4190                    n.extend(this, { lazy: { initialImageLoaded: !1, load: le.load.bind(this), loadInSlide: le.loadInSlide.bind(this) } });
4191                },
4192                on: {
4193                    beforeInit: function () {
4194                        this.params.lazy.enabled && this.params.preloadImages && (this.params.preloadImages = !1);
4195                    },
4196                    init: function () {
4197                        this.params.lazy.enabled && !this.params.loop && 0 === this.params.initialSlide && this.lazy.load();
4198                    },
4199                    scroll: function () {
4200                        this.params.freeMode && !this.params.freeModeSticky && this.lazy.load();
4201                    },
4202                    resize: function () {
4203                        this.params.lazy.enabled && this.lazy.load();
4204                    },
4205                    scrollbarDragMove: function () {
4206                        this.params.lazy.enabled && this.lazy.load();
4207                    },
4208                    transitionStart: function () {
4209                        this.params.lazy.enabled && (this.params.lazy.loadOnTransitionStart || (!this.params.lazy.loadOnTransitionStart && !this.lazy.initialImageLoaded)) && this.lazy.load();
4210                    },
4211                    transitionEnd: function () {
4212                        this.params.lazy.enabled && !this.params.lazy.loadOnTransitionStart && this.lazy.load();
4213                    },
4214                    slideChange: function () {
4215                        this.params.lazy.enabled && this.params.cssMode && this.lazy.load();
4216                    },
4217                },
4218            },
4219            {
4220                name: "controller",
4221                params: { controller: { control: void 0, inverse: !1, by: "slide" } },
4222                create: function () {
4223                    n.extend(this, {
4224                        controller: { control: this.params.controller.control, getInterpolateFunction: de.getInterpolateFunction.bind(this), setTranslate: de.setTranslate.bind(this), setTransition: de.setTransition.bind(this) },
4225                    });
4226                },
4227                on: {
4228                    update: function () {
4229                        this.controller.control && this.controller.spline && ((this.controller.spline = void 0), delete this.controller.spline);
4230                    },
4231                    resize: function () {
4232                        this.controller.control && this.controller.spline && ((this.controller.spline = void 0), delete this.controller.spline);
4233                    },
4234                    observerUpdate: function () {
4235                        this.controller.control && this.controller.spline && ((this.controller.spline = void 0), delete this.controller.spline);
4236                    },
4237                    setTranslate: function (e, t) {
4238                        this.controller.control && this.controller.setTranslate(e, t);
4239                    },
4240                    setTransition: function (e, t) {
4241                        this.controller.control && this.controller.setTransition(e, t);
4242                    },
4243                },
4244            },
4245            {
4246                name: "a11y",
4247                params: {
4248                    a11y: {
4249                        enabled: !0,
4250                        notificationClass: "swiper-notification",
4251                        prevSlideMessage: "Previous slide",
4252                        nextSlideMessage: "Next slide",
4253                        firstSlideMessage: "This is the first slide",
4254                        lastSlideMessage: "This is the last slide",
4255                        paginationBulletMessage: "Go to slide {{index}}",
4256                    },
4257                },
4258                create: function () {
4259                    var e = this;
4260                    n.extend(e, { a11y: { liveRegion: s('<span class="' + e.params.a11y.notificationClass + '" aria-live="assertive" aria-atomic="true"></span>') } }),
4261                        Object.keys(he).forEach(function (t) {
4262                            e.a11y[t] = he[t].bind(e);
4263                        });
4264                },
4265                on: {
4266                    init: function () {
4267                        this.params.a11y.enabled && (this.a11y.init(), this.a11y.updateNavigation());
4268                    },
4269                    toEdge: function () {
4270                        this.params.a11y.enabled && this.a11y.updateNavigation();
4271                    },
4272                    fromEdge: function () {
4273                        this.params.a11y.enabled && this.a11y.updateNavigation();
4274                    },
4275                    paginationUpdate: function () {
4276                        this.params.a11y.enabled && this.a11y.updatePagination();
4277                    },
4278                    destroy: function () {
4279                        t
4279his.params.a11y.enabled && this.a11y.destroy();
4280                    },
4281                },
4282            },
4283            {
4284                name: "history",
4285                params: { history: { enabled: !1, replaceState: !1, key: "slides" } },
4286                create: function () {
4287                    n.extend(this, {
4288                        history: { init: pe.init.bind(this), setHistory: pe.setHistory.bind(this), setHistoryPopState: pe.setHistoryPopState.bind(this), scrollToSlide: pe.scrollToSlide.bind(this), destroy: pe.destroy.bind(this) },
4289                    });
4290                },
4291                on: {
4292                    init: function () {
4293                        this.params.history.enabled && this.history.init();
4294                    },
4295                    destroy: function () {
4296                        this.params.history.enabled && this.history.destroy();
4297                    },
4298                    transitionEnd: function () {
4299                        this.history.initialized && this.history.setHistory(this.params.history.key, this.activeIndex);
4300                    },
4301                    slideChange: function () {
4302                        this.history.initialized && this.params.cssMode && this.history.setHistory(this.params.history.key, this.activeIndex);
4303                    },
4304                },
4305            },
4306            {
4307                name: "hash-navigation",
4308                params: { hashNavigation: { enabled: !1, replaceState: !1, watchState: !1 } },
4309                create: function () {
4310                    n.extend(this, { hashNavigation: { initialized: !1, init: ce.init.bind(this), destroy: ce.destroy.bind(this), setHash: ce.setHash.bind(this), onHashCange: ce.onHashCange.bind(this) } });
4311                },
4312                on: {
4313                    init: function () {
4314                        this.params.hashNavigation.enabled && this.hashNavigation.init();
4315                    },
4316                    destroy: function () {
4317                        this.params.hashNavigation.enabled && this.hashNavigation.destroy();
4318                    },
4319                    transitionEnd: function () {
4320                        this.hashNavigation.initialized && this.hashNavigation.setHash();
4321                    },
4322                    slideChange: function () {
4323                        this.hashNavigation.initialized && this.params.cssMode && this.hashNavigation.setHash();
4324                    },
4325                },
4326            },
4327            {
4328                name: "autoplay",
4329                params: { autoplay: { enabled: !1, delay: 3e3, waitForTransition: !0, disableOnInteraction: !0, stopOnLastSlide: !1, reverseDirection: !1 } },
4330                create: function () {
4331                    var e = this;
4332                    n.extend(e, {
4333                        autoplay: {
4334                            running: !1,
4335                            paused: !1,
4336                            run: ue.run.bind(e),
4337                            start: ue.start.bind(e),
4338                            stop: ue.stop.bind(e),
4339                            pause: ue.pause.bind(e),
4340                            onVisibilityChange: function () {
4341                                "hidden" === document.visibilityState && e.autoplay.running && e.autoplay.pause(), "visible" === document.visibilityState && e.autoplay.paused && (e.autoplay.run(), (e.autoplay.paused = !1));
4342                            },
4343                            onTransitionEnd: function (t) {
4344                                e &&
4345                                    !e.destroyed &&
4346                                    e.$wrapperEl &&
4347                                    t.target === this &&
4348                                    (e.$wrapperEl[0].removeEventListener("transitionend", e.autoplay.onTransitionEnd),
4349                                    e.$wrapperEl[0].removeEventListener("webkitTransitionEnd", e.autoplay.onTransitionEnd),
4350                                    (e.autoplay.paused = !1),
4351                                    e.autoplay.running ? e.autoplay.run() : e.autoplay.stop());
4352                            },
4353                        },
4354                    });
4355                },
4356                on: {
4357                    init: function () {
4358                        this.params.autoplay.enabled && (this.autoplay.start(), document.addEventListener("visibilitychange", this.autoplay.onVisibilityChange));
4359                    },
4360                    beforeTransitionStart: function (e, t) {
4361                        this.autoplay.running && (t || !this.params.autoplay.disableOnInteraction ? this.autoplay.pause(e) : this.autoplay.stop());
4362                    },
4363                    sliderFirstMove: function () {
4364                        this.autoplay.running && (this.params.autoplay.disableOnInteraction ? this.autoplay.stop() : this.autoplay.pause());
4365                    },
4366                    touchEnd: function () {
4367                        this.params.cssMode && this.autoplay.paused && !this.params.autoplay.disableOnInteraction && this.autoplay.run();
4368                    },
4369                    destroy: function () {
4370                        this.autoplay.running && this.autoplay.stop(), document.removeEventListener("visibilitychange", this.autoplay.onVisibilityChange);
4371                    },
4372                },
4373            },
4374            {
4375                name: "effect-fade",
4376                params: { fadeEffect: { crossFade: !1 } },
4377                create: function () {
4378                    n.extend(this, { fadeEffect: { setTranslate: ve.setTranslate.bind(this), setTransition: ve.setTransition.bind(this) } });
4379                },
4380                on: {
4381                    beforeInit: function () {
4382                        if ("fade" === this.params.effect) {
4383                            this.classNames.push(this.params.containerModifierClass + "fade");
4384                            var e = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0 };
4385                            n.extend(this.params, e), n.extend(this.originalParams, e);
4386                        }
4387                    },
4388                    setTranslate: function () {
4389                        "fade" === this.params.effect && this.fadeEffect.setTranslate();
4390                    },
4391                    setTransition: function (e) {
4392                        "fade" === this.params.effect && this.fadeEffect.setTransition(e);
4393                    },
4394                },
4395            },
4396            {
4397                name: "effect-cube",
4398                params: { cubeEffect: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: 0.94 } },
4399                create: function () {
4400                    n.extend(this, { cubeEffect: { setTranslate: fe.setTranslate.bind(this), setTransition: fe.setTransition.bind(this) } });
4401                },
4402                on: {
4403                    beforeInit: function () {
4404                        if ("cube" === this.params.effect) {
4405                            this.classNames.push(this.params.containerModifierClass + "cube"), this.classNames.push(this.params.containerModifierClass + "3d");
4406                            var e = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, resistanceRatio: 0, spaceBetween: 0, centeredSlides: !1, virtualTranslate: !0 };
4407                            n.extend(this.params, e), n.extend(this.originalParams, e);
4408                        }
4409                    },
4410                    setTranslate: function () {
4411                        "cube" === this.params.effect && this.cubeEffect.setTranslate();
4412                    },
4413                    setTransition: function (e) {
4414                        "cube" === this.params.effect && this.cubeEffect.setTransition(e);
4415                    },
4416                },
4417            },
4418            {
4419                name: "effect-flip",
4420                params: { flipEffect: { slideShadows: !0, limitRotation: !0 } },
4421                create: function () {
4422                    n.extend(this, { flipEffect: { setTranslate: me.setTranslate.bind(this), setTransition: me.setTransition.bind(this) } });
4423                },
4424                on: {
4425                    beforeInit: function () {
4426                        if ("flip" === this.params.effect) {
4427                            this.classNames.push(this.params.containerModifierClass + "flip"), this.classNames.push(this.params.containerModifierClass + "3d");
4428                            var e = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0 };
4429                            n.extend(this.params, e), n.extend(this.originalParams, e);
4430                        }
4431                    },
4432                    setTranslate: function () {
4433                        "flip" === this.params.effect && this.flipEffect.setTranslate();
4434                    },
4435                    setTransition: function (e) {
4436                        "flip" === this.params.effect && this.flipEffect.setTransition(e);
4437                    },
4438                },
4439            },
4440            {
4441                name: "effect-coverflow",
4442                params: { coverflowEffect: { rotate: 50, stretch: 0, depth: 100, modifier: 1, slideShadows: !0 } },
4443                create: function () {
4444                    n.extend(this, { coverflowEffect: { setTranslate: ge.setTranslate.bind(this), setTransition: ge.setTransition.bind(this) } });
4445                },
4446                on: {
4447                    beforeInit: function () {
4448                        "coverflow" === this.params.effect &&
4449                            (this.classNames.push(this.params.containerModifierClass + "coverflow"),
4450                            this.classNames.push(this.params.containerModifierClass + "3d"),
4451                            (this.params.watchSlidesProgress = !0),
4452                            (this.originalParams.watchSlidesProgress = !0));
4453                    },
4454                    setTranslate: function () {
4455                        "coverflow" === this.params.effect && this.coverflowEffect.setTranslate();
4456                    },
4457                    setTransition: function (e) {
4458                        "coverflow" === this.params.effect && this.coverflowEffect.setTransition(e);
4459                    },
4460                },
4461            },
4462            {
4463                name: "thumbs",
4464                params: { thumbs: { multipleActiveThumbs: !0, swiper: null, slideThumbActiveClass: "swiper-slide-thumb-active", thumbsContainerClass: "swiper-container-thumbs" } },
4465                create: function () {
4466                    n.extend(this, { thumbs: { swiper: null, init: be.init.bind(this), update: be.update.bind(this), onThumbClick: be.onThumbClick.bind(this) } });
4467                },
4468                on: {
4469                    beforeInit: function () {
4470                        var e = this.params.thumbs;
4471                        e && e.swiper && (this.thumbs.init(), this.thumbs.update(!0));
4472                    },
4473                    slideChange: function () {
4474                        this.thumbs.swiper && this.thumbs.update();
4475                    },
4476                    update: function () {
4477                        this.thumbs.swiper && this.thumbs.update();
4478                    },
4479                    resize: function () {
4480                        this.thumbs.swiper && this.thumbs.update();
4481                    },
4482                    observerUpdate: function () {
4483                        this.thumbs.swiper && this.thumbs.update();
4484                    },
4485                    setTransition: function (e) {
4486                        var t = this.thumbs.swiper;
4487                        t && t.setTransition(e);
4488                    },
4489                    beforeDestroy: function () {
4490                        var e = this.thumbs.swiper;
4491                        e && this.thumbs.swiperCreated && e && e.destroy();
4492                    },
4493                },
4494            },
4495        ];
4496    return void 0 === W.use && ((W.use = W.Class.use), (W.installModule = W.Class.installModule)), W.use(we), W;
4497});
4498//# sourceMappingURL=swiper.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.