PageSourceSearch

https://www.masato07.com/res/100/js/swiper.min5.2.1.js

js masato07.com collected 2026-10-04 11:15:59 UTC 219,661 bytes, 4,400 lines download raw bytes

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