PageSourceSearch

https://www.masterpro.com.vn/wp-content/litespeed/js/b9280d81ee6531a1891951c188dbd845.js?ver=bd845

js masterpro.com.vn collected 2026-10-02 00:41:41 UTC 484,285 bytes, 9,095 lines download raw bytes

1/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */
2/*!
3 * jQuery Cookie Plugin v1.4.0
4 * https://github.com/carhartl/jquery-cookie
5 *
6 * Copyright 2013 Klaus Hartl
7 * Released under the MIT license
8 */
9(function(n) {
10    typeof define == "function" && define.amd ? define(["jquery"], n) : n(jQuery)
11})(function(n) {
12    function i(n) {
13        return t.raw ? n : encodeURIComponent(n)
14    }
15
16    function f(n) {
17        return t.raw ? n : decodeURIComponent(n)
18    }
19
20    function e(n) {
21        return i(t.json ? JSON.stringify(n) : String(n))
22    }
23
24    function o(n) {
25        n.indexOf('"') === 0 && (n = n.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\"));
26        try {
27            return n = decodeURIComponent(n.replace(u, " ")), t.json ? JSON.parse(n) : n
28        } catch (i) {}
29    }
30
31    function r(i, r) {
32        var u = t.raw ? i : o(i);
33        return n.isFunction(r) ? r(u) : u
34    }
35    var u = /\+/g,
36        t = n.cookie = function(u, o, s) {
37            var y, a, h, v, c, p;
38            if (o !== undefined && !n.isFunction(o)) return s = n.extend({}, t.defaults, s), typeof s.expires == "number" && (y = s.expires, a = s.expires = new Date, a.setTime(+a + y * 864e5)), document.cookie = [i(u), "=", e(o), s.expires ? "; expires=" + s.expires.toUTCString() : "", s.path ? "; path=" + s.path : "", s.domain ? "; domain=" + s.domain : "", s.secure ? "; secure" : ""].join("");
39            for (h = u ? undefined : {}, v = document.cookie ? document.cookie.split("; ") : [], c = 0, p = v.length; c < p; c++) {
40                var w = v[c].split("="),
41                    b = f(w.shift()),
42                    l = w.join("=");
43                if (u && u === b) {
44                    h = r(l, o);
45                    break
46                }
47                u || (l = r(l)) === undefined || (h[b] = l)
48            }
49            return h
50        };
51    t.defaults = {};
52    n.removeCookie = function(t, i) {
53        return n.cookie(t) === undefined ? !1 : (n.cookie(t, "", n.extend({}, i, {
54            expires: -1
55        })), !n.cookie(t))
56    }
57});
58! function(n, t) {
59    "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : n.Swiper = t()
60}(this, function() {
61    "use strict";
62
63    function t(n, t) {
64        var s = [],
65            r = 0,
66            h, c, e, o;
67        if (n && !t && n instanceof f) return n;
68        if (n)
69            if ("string" == typeof n)
70                if (e = n.trim(), 0 <= e.indexOf("<") && 0 <= e.indexOf(">"))
71                    for (o = "div", 0 === e.indexOf("<li") && (o = "ul"), 0 === e.indexOf("<tr") && (o = "tbody"), 0 !== e.indexOf("<td") && 0 !== e.indexOf("<th") || (o = "tr"), 0 === e.indexOf("<tbody") && (o = "table"), 0 === e.indexOf("<option") && (o = "select"), (c = u.createElement(o)).innerHTML = e, r = 0; r < c.childNodes.length; r += 1) s.push(c.childNodes[r]);
72                else
73                    for (h = t || "#" !== n[0] || n.match(/[ .<>:~]/) ? (t || u).querySelectorAll(n.trim()) : [u.getElementById(n.trim().split("#")[1])], r = 0; r < h.length; r += 1) h[r] && s.push(h[r]);
74        else if (n.nodeType || n === i || n === u) s.push(n);
75        else if (0 < n.length && n[0].nodeType)
76            for (r = 0; r < n.length; r += 1) s.push(n[r]);
77        return new f(s)
78    }
79
80    function rt(n) {
81        for (var i = [], t = 0; t < n.length; t += 1) - 1 === i.indexOf(n[t]) && i.push(n[t]);
82        return i
83    }
84
85    function at() {
86        var n = this,
87            t = n.params,
88            i = n.el,
89            r;
90        if (!i || 0 !== i.offsetWidth) {
91            t.breakpoints && n.setBreakpoint();
92            var u = n.allowSlideNext,
93                f = n.allowSlidePrev,
94                e = n.snapGrid;
95            (n.allowSlideNext = !0, n.allowSlidePrev = !0, n.updateSize(), n.updateSlides(), t.freeMode) ? (r = Math.min(Math.max(n.translate, n.maxTranslate()), n.minTranslate()), n.setTranslate(r), n.updateActiveIndex(), n.updateSlidesClasses(), t.autoHeight && n.updateAutoHeight()) : (n.updateSlidesClasses(), ("auto" === t.slidesPerView || 1 < t.slidesPerView) && n.isEnd && !n.params.centeredSlides ? n.slideTo(n.slides.length - 1, 0, !1, !0) : n.slideTo(n.activeIndex, 0, !1, !0));
96            n.allowSlidePrev = f;
97            n.allowSlideNext = u;
98            n.params.watchOverflow && e !== n.snapGrid && n.checkOverflow()
99        }
100    }
101    var u = "undefined" == typeof document ? {
102            body: {},
103            addEventListener: function() {},
104            removeEventListener: function() {},
105            activeElement: {
106                blur: function() {},
107                nodeName: ""
108            },
109            querySelector: function() {
110                return null
111            },
112            querySelectorAll: function() {
113                return []
114            },
115            getElementById: function() {
116                return null
117            },
118            createEvent: function() {
119                return {
120                    initEvent: function() {}
121                }
122            },
123            createElement: function() {
124                return {
125                    children: [],
126                    childNodes: [],
127                    style: {},
128                    setAttribute: function() {},
129                    getElementsByTagName: function() {
130                        return []
131                    }
132                }
133            },
134            location: {
135                hash: ""
136            }
137        } : document,
138        i = "undefined" == typeof window ? {
139            document: u,
140            navigator: {
141                userAgent: ""
142            },
143            location: {},
144            history: {},
145            CustomEvent: function() {
146                return this
147            },
148            addEventListener: function() {},
149            removeEventListener: function() {},
150            getComputedStyle: function() {
151                return {
152                    getPropertyValue: function() {
153                        return ""
154                    }
155                }
156            },
157            Image: function() {},
158            Date: function() {},
159            screen: {},
160            setTimeout: function() {},
161            clearTimeout: function() {}
162        } : window,
163        f = function(n) {
164            for (var t = 0; t < n.length; t += 1) this[t] = n[t];
165            return this.length = n.length, this
166        },
167        ut;
168    t.fn = f.prototype;
169    t.Class = f;
170    t.Dom7 = f;
171    ut = {
172        addClass: function(n) {
173            var r, i, t;
174            if (void 0 === n) return this;
175            for (r = n.split(" "), i = 0; i < r.length; i += 1)
176                for (t = 0; t < this.length; t += 1) void 0 !== this[t] && void 0 !== this[t].classList && this[t].classList.add(r[i]);
177            return this
178        },
179        removeClass: function(n) {
180            for (var t, r = n.split(" "), i = 0; i < r.length; i += 1)
181                for (t = 0; t < this.length; t += 1) void 0 !== this[t] && void 0 !== this[t].classList && this[t].classList.remove(r[i]);
182            return this
183        },
184        hasClass: function(n) {
185            return !!this[0] && this[0].classList.contains(n)
186        },
187        toggleClass: function(n) {
188            for (var t, r = n.split(" "), i = 0; i < r.length; i += 1)
189                for (t = 0; t < this.length; t += 1) void 0 !== this[t] && void 0 !== this[t].classList && this[t].classList.toggle(r[i]);
190            return this
191        },
192        attr: function(n, t) {
193            var u = arguments,
194                i, r;
195            if (1 === arguments.length && "string" == typeof n) return this[0] ? this[0].getAttribute(n) : void 0;
196            for (i = 0; i < this.length; i += 1)
197                if (2 === u.length) this[i].setAttribute(n, t);
198                else
199                    for (r in n) this[i][r] = n[r], this[i].setAttribute(r, n[r]);
200            return this
201        },
202        removeAttr: function(n) {
203            for (var t = 0; t < this.length; t += 1) this[t].removeAttribute(n);
204            return this
205        },
206        data: function(n, t) {
207            var i, r, u;
208            if (void 0 !== t) {
209                for (r = 0; r < this.length;
209 r += 1)(i = this[r]).dom7ElementDataStorage || (i.dom7ElementDataStorage = {}), i.dom7ElementDataStorage[n] = t;
210                return this
211            }
212            if (i = this[0]) return i.dom7ElementDataStorage && n in i.dom7ElementDataStorage ? i.dom7ElementDataStorage[n] : (u = i.getAttribute("data-" + n), u || void 0)
213        },
214        transform: function(n) {
215            for (var i, t = 0; t < this.length; t += 1) i = this[t].style, i.webkitTransform = n, i.transform = n;
216            return this
217        },
218        transition: function(n) {
219            var t, i;
220            for ("string" != typeof n && (n += "ms"), t = 0; t < this.length; t += 1) i = this[t].style, i.webkitTransitionDuration = n, i.transitionDuration = n;
221            return this
222        },
223        on: function() {
224            function y(n) {
225                var f = n.target,
226                    i, e, r;
227                if (f)
228                    if (i = n.target.dom7EventData || [], i.indexOf(n) < 0 && i.unshift(n), t(f).is(c)) u.apply(f, i);
229                    else
230                        for (e = t(f).parents(), r = 0; r < e.length; r += 1) t(e[r]).is(c) && u.apply(e[r], i)
231            }
232
233            function p(n) {
234                var t = n && n.target && n.target.dom7EventData || [];
235                t.indexOf(n) < 0 && t.unshift(n);
236                u.apply(this, t)
237            }
238            for (var a, r, e, l, n, o, s, i = [], h = arguments.length; h--;) i[h] = arguments[h];
239            var v = i[0],
240                c = i[1],
241                u = i[2],
242                f = i[3];
243            for ("function" == typeof i[1] && (v = (a = i)[0], u = a[1], f = a[2], c = void 0), f || (f = !1), e = v.split(" "), l = 0; l < this.length; l += 1)
244                if (n = this[l], c)
245                    for (r = 0; r < e.length; r += 1) o = e[r], n.dom7LiveListeners || (n.dom7LiveListeners = {}), n.dom7LiveListeners[o] || (n.dom7LiveListeners[o] = []), n.dom7LiveListeners[o].push({
246                        listener: u,
247                        proxyListener: y
248                    }), n.addEventListener(o, y, f);
249                else
250                    for (r = 0; r < e.length; r += 1) s = e[r], n.dom7Listeners || (n.dom7Listeners = {}), n.dom7Listeners[s] || (n.dom7Listeners[s] = []), n.dom7Listeners[s].push({
251                        listener: u,
252                        proxyListener: p
253                    }), n.addEventListener(s, p, f);
254            return this
255        },
256        off: function() {
257            for (var l, v, s, f, h, i, n, r, c, t = [], e = arguments.length; e--;) t[e] = arguments[e];
258            var y = t[0],
259                a = t[1],
260                o = t[2],
261                u = t[3];
262            for ("function" == typeof t[1] && (y = (l = t)[0], o = l[1], u = l[2], a = void 0), u || (u = !1), v = y.split(" "), s = 0; s < v.length; s += 1)
263                for (f = v[s], h = 0; h < this.length; h += 1)
264                    if (i = this[h], n = void 0, !a && i.dom7Listeners ? n = i.dom7Listeners[f] : a && i.dom7LiveListeners && (n = i.dom7LiveListeners[f]), n && n.length)
265                        for (r = n.length - 1; 0 <= r; r -= 1) c = n[r], o && c.listener === o ? (i.removeEventListener(f, c.proxyListener, u), n.splice(r, 1)) : o || (i.removeEventListener(f, c.proxyListener, u), n.splice(r, 1));
266            return this
267        },
268        trigger: function() {
269            for (var s, e, t, r, n = [], f = arguments.length; f--;) n[f] = arguments[f];
270            for (var h = n[0].split(" "), c = n[1], o = 0; o < h.length; o += 1)
271                for (s = h[o], e = 0; e < this.length; e += 1) {
272                    t = this[e];
273                    r = void 0;
274                    try {
275                        r = new i.CustomEvent(s, {
276                            detail: c,
277                            bubbles: !0,
278                            cancelable: !0
279                        })
280                    } catch (n) {
281                        (r = u.createEvent("Event")).initEvent(s, !0, !0);
282                        r.detail = c
283                    }
284                    t.dom7EventData = n.filter(function(n, t) {
285                        return 0 < t
286                    });
287                    t.dispatchEvent(r);
288                    t.dom7EventData = [];
289                    delete t.dom7EventData
290                }
291            return this
292        },
293        transitionEnd: function(n) {
294            function u(f) {
295                if (f.target === this)
296                    for (n.call(this, f), t = 0; t < i.length; t += 1) r.off(i[t], u)
297            }
298            var t, i = ["webkitTransitionEnd", "transitionend"],
299                r = this;
300            if (n)
301                for (t = 0; t < i.length; t += 1) r.on(i[t], u);
302            return this
303        },
304        outerWidth: function(n) {
305            if (0 < this.length) {
306                if (n) {
307                    var t = this.styles();
308                    return this[0].offsetWidth + parseFloat(t.getPropertyValue("margin-right")) + parseFloat(t.getPropertyValue("margin-left"))
309                }
310                return this[0].offsetWidth
311            }
312            return null
313        },
314        outerHeight: function(n) {
315            if (0 < this.length) {
316                if (n) {
317                    var t = this.styles();
318                    return this[0].offsetHeight + parseFloat(t.getPropertyValue("margin-top")) + parseFloat(t.getPropertyValue("margin-bottom"))
319                }
320                return this[0].offsetHeight
321            }
322            return null
323        },
324        offset: function() {
325            if (0 < this.length) {
326                var n = this[0],
327                    t = n.getBoundingClientRect(),
328                    r = u.body,
329                    f = n.clientTop || r.clientTop || 0,
330                    e = n.clientLeft || r.clientLeft || 0,
331                    o = n === i ? i.scrollY : n.scrollTop,
332                    s = n === i ? i.scrollX : n.scrollLeft;
333                return {
334                    top: t.top + o - f,
335                    left: t.left + s - e
336                }
337            }
338            return null
339        },
340        css: function(n, t) {
341            var r, u;
342            if (1 === arguments.length) {
343                if ("string" != typeof n) {
344                    for (r = 0; r < this.length; r += 1)
345                        for (u in n) this[r].style[u] = n[u];
346                    return this
347                }
348                if (this[0]) return i.getComputedStyle(this[0], null).getPropertyValue(n)
349            }
350            if (2 === arguments.length && "string" == typeof n) {
351                for (r = 0; r < this.length; r += 1) this[r].style[n] = t;
352                return this
353            }
354            return this
355        },
356        each: function(n) {
357            if (!n) return this;
358            for (var t = 0; t < this.length; t += 1)
359                if (!1 === n.call(this[t], t, this[t])) return this;
360            return this
361        },
362        html: function(n) {
363            if (void 0 === n) return this[0] ? this[0].innerHTML : void 0;
364            for (var t = 0; t < this.length; t += 1) this[t].innerHTML = n;
365            return this
366        },
367        text: function(n) {
368            if (void 0 === n) return this[0] ? this[0].textContent.trim() : null;
369            for (var t = 0; t < this.length; t += 1) this[t].textContent = n;
370            return this
371        },
372        is: function(n) {
373            var o, e, r = this[0];
374            if (!r || void 0 === n) return !1;
375            if ("string" == typeof n) {
376                if (r.matches) return r.matches(n);
377                if (r.webkitMatchesSelector) return r.webkitMatchesSelector(n);
378                if (r.msMatchesSelector) return r.msMatchesSelector(n);
379                for (o = t(n), e = 0; e < o.length; e += 1)
380                    if (o[e] === r) return !0;
381                return !1
382            }
383            if (n === u) return r === u;
384            if (n === i) return r === i;
385            if (n.nodeType || n instanceof f) {
386                for (o = n.nodeType ? [n] : n, e = 0; e < o.length; e += 1)
387                    if (o[e] === r) return !0;
388                return !1
389            }
390            return !1
391        },
392        index: function() {
393            var t, n = this[0];
394            if (n) {
395                for (t = 0; null !== (n = n.previousSibling);) 1 === n.nodeType && (t += 1);
396                return t
397            }
398        },
399        eq: function(n) {
400            if (void 0 === n) return this;
401            var t, i = this.length;
402            return new f(i - 1 < n ? [] : n < 0 ? (t = i + n) < 0 ? [] : [this[t]] : [this[n]])
403        },
404        append: function() {
405            for (var n, e, t, o, s, i = [], r = arguments.length; r--;) i[r] = arguments[r];
406            for (e = 0; e < i.length; e += 1)
407                for (n = i[e], t = 0; t < this.length; t += 1)
408                    if ("string" == typeof n)
409                        for (o = u.createElement("div"), o.innerHTML = n; o.firstChild;) this[t].appendChild(o.firstChild);
410                    else if (n instanceof f)
411                for (s = 0; s < n.length; s += 1) this[t].appendChild(n[s]);
412            else this[t].appendChild(n);
413            return this
414        },
415        prepend: function(n) {
416            for (var i, r, t = 0; t < this.length; t += 1)
417                if ("string" == typeof n)
418                    for (r = u.createElement("div"), r.innerHTML = n, i = r.childNodes.length - 1; 0 <= i; i -= 1) this[t].insertBefore(r.childNodes[i], this[t].childNodes[0]);
419                else if (n instanceof f)
420                for (i = 0; i < n.length; i += 1) this[t].insertBefore(n[i], this[t].childNodes[0]);
421            else this[t].insertBefore(n, this[t].childNodes[0]);
422            return this
423        },
424        next: function(n) {
425            return 0 < this.length ? n ? this[0].nextElementSibling && t(this[0].nextElementSibling).is(n) ? new f([this[0].nextElementSibling]) : new f([]) : this[0].nextElementSibling ? new f([this[0].nextElementSibling]) : new f([]) : new f([])
426        },
427        nextAll: function(n) {
428            var u = [],
429                r = this[0],
430                i;
431            if (!r) return new f([]);
432            for (; r.nextElementSibling;) i = r.nextElementSibling, n ? t(i).is(n) && u.push(i) : u.push(i), r = i;
433            return new f(u)
434        },
435        prev: function(n) {
436            if (0 < this.length) {
437                var i = this[0];
438                return n ? i.previousElementSibling && t(i.previousElementSibling).is(n) ? new f([i.previousElementSibling]) : new f([]) : i.previousElementSibling ? new f([i.previousElementSibling]) : new f([])
439            }
440            return new f([])
441        },
442        prevAll: function(n) {
443            var u = [],
444                r = this[0],
445                i;
446            if (!r) return new f([]);
447            for (; r.previousElementSibling;) i = r.previousElementSibling, n ? t(i).is(n) && u.push(i) : u.push(i), r = i;
448            return new f(u)
449        },
450        parent: function(n) {
451            for (var r = [], i = 0; i < this.length; i += 1) null !== this[i].parentNode && (n ? t(this[i].parentNode).is(n) && r.push(this[i].parentNode) : r.push(this[i].parentNode));
452            return t(rt(r))
453        },
454        parents: function(n) {
455            for (var i, r = [], u = 0; u < this.length; u += 1)
456                for (i = this[u].parentNode; i;) n ? t(i).is(n) && r.push(i) : r.push(i), i = i.parentNode;
457            return t(rt(r))
458        },
459        closest: function(n) {
460            var t = this;
461            return void 0 === n ? new f([]) : (t.is(n) || (t = t.parents(n).eq(0)), t)
462        },
463        find: function(n) {
464            for (var u, i, r = [], t = 0; t < this.length; t += 1)
465                for (u = this[t].querySelectorAll(n), i = 0; i < u.length; i += 1) r.push(u[i]);
466            return new f(r)
467        },
468        children: function(n) {
469            for (var r, i, u = [], e = 0; e < this.length; e += 1)
470                for (r = this[e].childNodes, i = 0; i < r.length; i += 1) n ? 1 === r[i].nodeType && t(r[i]).is(n) && u.push(r[i]) : 1 === r[i].nodeType && u.push(r[i]);
471            return new f(rt(u))
472        },
473        remove: function() {
474            for (var n = 0; n < this.length; n += 1) this[n].parentNode && this[n].parentNode.removeChild(this[n]);
475            return this
476        },
477        add: function() {
478            for (var r, u, f, n = [], i = arguments.length; i--;) n[i] = arguments[i];
479            for (r = 0; r < n.length; r += 1)
480                for (f = t(n[r]), u = 0; u < f.length; u += 1) this[this.length] = f[u], this.length += 1;
481            return this
482        },
483        styles: function() {
484            return this[0] ? i.getComputedStyle(this[0], null) : {}
485        }
486    };
487    Object.keys(ut).forEach(function(n) {
488        t.fn[n] = ut[n]
489    });
490    var a, w, b, n = {
491            deleteProps: function(n) {
492                var t = n;
493                Object.keys(t).forEach(function(n) {
494                    try {
495                        t[n] = null
496                    } catch (n) {}
497                    try {
498                        delete t[n]
499                    } catch (n) {}
500                })
501            },
502            nextTick: function(n, t) {
503                return void 0 === t && (t = 0), setTimeout(n, t)
504            },
505            now: function() {
506                return Date.now()
507            },
508            getTranslate: function(n, t) {
509                var f, u, e, r;
510                return void 0 === t && (t = "x"), r = i.getComputedStyle(n, null), i.WebKitCSSMatrix ? (6 < (u = r.transform || r.webkitTransform).split(",").length && (u = u.split(", ").map(function(n) {
511                    return n.replace(",", ".")
512                }).join(", ")), e = new i.WebKitCSSMatrix("none" === u ? "" : u)) : f = (e = r.MozTransform || r.OTransform || r.MsTransform || r.msTransform || r.transform || r.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,")).toString().split(","), "x" === t && (u = i.WebKitCSSMatrix ? e.m41 : 16 === f.length ? parseFloat(f[12]) : parseFloat(f[4])), "y" === t && (u = i.WebKitCSSMatrix ? e.m42 : 16 === f.length ? parseFloat(f[13]) : parseFloat(f[5])), u || 0
513            },
514            parseUrlQuery: function(n) {
515                var r, f, u, e, o = {},
516                    t = n || i.location.href;
517                if ("string" == typeof t && t.length)
518                    for (e = (f = (t = -1 < t.indexOf("?") ? t.replace(/\S*\?/, "") : "").split("&").filter(function(n) {
519                            return "" !== n
520                        })).length, r = 0; r < e; r += 1) u = f[r].replace(/#\S+/g, "").split("="), o[decodeURIComponent(u[0])] = void 0 === u[1] ? void 0 : decodeURIComponent(u[1]) || "";
521                return o
522            },
523            isObject: function(n) {
524                return "object" == typeof n && null !== n && n.constructor && n.constructor === Object
525            },
526            extend: function() {
527                for (var r, e, i, t, s, u = [], f = arguments.length; f--;) u[f] = arguments[f];
528                for (r = Object(u[0]), e = 1; e < u.length; e += 1)
529                    if (i = u[e], null != i)
530                        for (var h = Object.keys(Object(i)), o = 0, c = h.length; o < c; o += 1) t = h[o], s = Object.getOwnPropertyDescriptor(i, t), void 0 !== s && s.enumerable && (n.isObject(r[t]) && n.isObject(i[t]) ? n.extend(r[t], i[t]) : !n.isObject(r[t]) && n.isObject(i[t]) ? (r[t] = {}, n.extend(r[t], i[t])) : r[t] = i[t]);
531                return r
532            }
533        },
534        r = (b = u.createElement("div"), {
535            touch: i.Modernizr && !0 === i.Modernizr.touch || !!(0 < i.navigator.maxTouchPoints || "ontouchstart" in i || i.DocumentTouch && u instanceof i.DocumentTouch),
536            pointerEvents: !!(i.navigator.pointerEnabled || i.PointerEvent || "maxTouchPoints" in i.navigator),
537            prefixedPointerEvents: !!i.navigator.msPointerEnabled,
538            transition: (w = b.style, "transition" in w || "webkitTransition" in w || "MozTransition" in w),
539            transforms3d: i.Modernizr && !0 === i.Modernizr.csstransforms3d || (a = b.style, "webkitPerspective" in a || "MozPerspective" in a || "OPerspective" in a || "MsPerspective" in a || "perspective" in a),
540            flexbox: function() {
541                for (var i = b.style, t = "alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "), n = 0; n < t.length; n += 1)
542                    if (t[n] in i) return !0;
543                return !1
544            }(),
545            observer: "MutationObserver" in i || "WebkitMutationObserver" in i,
546            passiveListener: function() {
547                var n = !1,
548                    t;
549                try {
550                    t = Object.defineProperty({}, "passive", {
551                        get: function() {
552                            n = !0
553                        }
554                    });
555                    i.addEventListener("testPassiveListener", null, t)
556                } catch (n) {}
557                return n
558            }(),
559            gestures: "ongesturestart" in i
560        }),
561        h = function(n) {
562            void 0 === n && (n = {});
563            var t = this;
564            t.params = n;
565            t.eventsListeners = {};
566            t.params && t.params.on && Object.keys(t.params.on).forEac
566h(function(n) {
567                t.on(n, t.params.on[n])
568            })
569        },
570        lt = {
571            components: {
572                configurable: !0
573            }
574        };
575    h.prototype.on = function(n, t, i) {
576        var r = this,
577            u;
578        return "function" != typeof t ? r : (u = i ? "unshift" : "push", n.split(" ").forEach(function(n) {
579            r.eventsListeners[n] || (r.eventsListeners[n] = []);
580            r.eventsListeners[n][u](t)
581        }), r)
582    };
583    h.prototype.once = function(n, t, i) {
584        var r = this;
585        return "function" != typeof t ? r : r.on(n, function i() {
586            for (var f = [], u = arguments.length; u--;) f[u] = arguments[u];
587            t.apply(r, f);
588            r.off(n, i)
589        }, i)
590    };
591    h.prototype.off = function(n, t) {
592        var i = this;
593        return i.eventsListeners && n.split(" ").forEach(function(n) {
594            void 0 === t ? i.eventsListeners[n] = [] : i.eventsListeners[n] && i.eventsListeners[n].length && i.eventsListeners[n].forEach(function(r, u) {
595                r === t && i.eventsListeners[n].splice(u, 1)
596            })
597        }), i
598    };
599    h.prototype.emit = function() {
600        for (var i, u, f, t, n = [], r = arguments.length; r--;) n[r] = arguments[r];
601        return t = this, t.eventsListeners && ("string" == typeof n[0] || Array.isArray(n[0]) ? (i = n[0], u = n.slice(1, n.length), f = t) : (i = n[0].events, u = n[0].data, f = n[0].context || t), (Array.isArray(i) ? i : i.split(" ")).forEach(function(n) {
602            if (t.eventsListeners && t.eventsListeners[n]) {
603                var i = [];
604                t.eventsListeners[n].forEach(function(n) {
605                    i.push(n)
606                });
607                i.forEach(function(n) {
608                    n.apply(f, u)
609                })
610            }
611        })), t
612    };
613    h.prototype.useModulesParams = function(t) {
614        var i = this;
615        i.modules && Object.keys(i.modules).forEach(function(r) {
616            var u = i.modules[r];
617            u.params && n.extend(t, u.params)
618        })
619    };
620    h.prototype.useModules = function(n) {
621        void 0 === n && (n = {});
622        var t = this;
623        t.modules && Object.keys(t.modules).forEach(function(i) {
624            var r = t.modules[i],
625                u = n[i] || {};
626            r.instance && Object.keys(r.instance).forEach(function(n) {
627                var i = r.instance[n];
628                t[n] = "function" == typeof i ? i.bind(t) : i
629            });
630            r.on && t.on && Object.keys(r.on).forEach(function(n) {
631                t.on(n, r.on[n])
632            });
633            r.create && r.create.bind(t)(u)
634        })
635    };
636    lt.components.set = function(n) {
637        this.use && this.use(n)
638    };
639    h.installModule = function(t) {
640        for (var i, f, u = [], r = arguments.length - 1; 0 < r--;) u[r] = arguments[r + 1];
641        return i = this, i.prototype.modules || (i.prototype.modules = {}), f = t.name || Object.keys(i.prototype.modules).length + "_" + n.now(), (i.prototype.modules[f] = t).proto && Object.keys(t.proto).forEach(function(n) {
642            i.prototype[n] = t.proto[n]
643        }), t.static && Object.keys(t.static).forEach(function(n) {
644            i[n] = t.static[n]
645        }), t.install && t.install.apply(i, u), i
646    };
647    h.use = function(n) {
648        for (var t, r = [], i = arguments.length - 1; 0 < i--;) r[i] = arguments[i + 1];
649        return t = this, Array.isArray(n) ? (n.forEach(function(n) {
650            return t.installModule(n)
651        }), t) : t.installModule.apply(t, [n].concat(r))
652    };
653    Object.defineProperties(h, lt);
654    var gt = {
655            updateSize: function() {
656                var i, r, t = this,
657                    u = t.$el;
658                i = void 0 !== t.params.width ? t.params.width : u[0].clientWidth;
659                r = void 0 !== t.params.height ? t.params.height : u[0].clientHeight;
660                0 === i && t.isHorizontal() || 0 === r && t.isVertical() || (i = i - parseInt(u.css("padding-left"), 10) - parseInt(u.css("padding-right"), 10), r = r - parseInt(u.css("padding-top"), 10) - parseInt(u.css("padding-bottom"), 10), n.extend(t, {
661                    width: i,
662                    height: r,
663                    size: t.isHorizontal() ? i : r
664                }))
665            },
666            updateSlides: function() {
667                var u = this,
668                    t = u.params,
669                    b = u.$wrapperEl,
670                    v = u.size,
671                    st = u.rtlTranslate,
672                    ei = u.wrongRTL,
673                    wt = u.virtual && t.virtual.enabled,
674                    oi = wt ? u.virtual.slides.length : u.slides.length,
675                    c = b.children("." + u.params.slideClass),
676                    p = wt ? u.virtual.slides.length : c.length,
677                    f = [],
678                    k = [],
679                    ht = [],
680                    ct = t.slidesOffsetBefore,
681                    ut, d, o, l, it, ft, rt, et, ot, pt;
682                "function" == typeof ct && (ct = t.slidesOffsetBefore.call(u));
683                ut = t.slidesOffsetAfter;
684                "function" == typeof ut && (ut = t.slidesOffsetAfter.call(u));
685                var si = u.snapGrid.length,
686                    hi = u.snapGrid.length,
687                    s = t.spaceBetween,
688                    e = -ct,
689                    lt = 0,
690                    at = 0;
691                if (void 0 !== v) {
692                    "string" == typeof s && 0 <= s.indexOf("%") && (s = parseFloat(s.replace("%", "")) / 100 * v);
693                    u.virtualSize = -s;
694                    st ? c.css({
695                        marginLeft: "",
696                        marginTop: ""
697                    }) : c.css({
698                        marginRight: "",
699                        marginBottom: ""
700                    });
701                    1 < t.slidesPerColumn && (d = Math.floor(p / t.slidesPerColumn) === p / u.params.slidesPerColumn ? p : Math.ceil(p / t.slidesPerColumn) * t.slidesPerColumn, "auto" !== t.slidesPerView && "row" === t.slidesPerColumnFill && (d = Math.max(d, t.slidesPerView * t.slidesPerColumn)));
702                    for (var g, nt = t.slidesPerColumn, bt = d / nt, kt = Math.floor(p / t.slidesPerColumn), h = 0; h < p; h += 1) {
703                        if (o = 0, l = c.eq(h), 1 < t.slidesPerColumn) {
704                            var tt = void 0,
705                                w = void 0,
706                                y = void 0;
707                            "column" === t.slidesPerColumnFill ? (y = h - (w = Math.floor(h / nt)) * nt, (kt < w || w === kt && y === nt - 1) && nt <= (y += 1) && (y = 0, w += 1), tt = w + y * d / nt, l.css({
708                                "-webkit-box-ordinal-group": tt,
709                                "-moz-box-ordinal-group": tt,
710                                "-ms-flex-order": tt,
711                                "-webkit-order": tt,
712                                order: tt
713                            })) : w = h - (y = Math.floor(h / bt)) * bt;
714                            l.css("margin-" + (u.isHorizontal() ? "top" : "left"), 0 !== y && t.spaceBetween && t.spaceBetween + "px").attr("data-swiper-column", w).attr("data-swiper-row", y)
715                        }
716                        if ("none" !== l.css("display")) {
717                            if ("auto" === t.slidesPerView) {
718                                var a = i.getComputedStyle(l[0], null),
719                                    vt = l[0].style.transform,
720                                    yt = l[0].style.webkitTransform;
721                                if (vt && (l[0].style.transform = "none"), yt && (l[0].style.webkitTransform = "none"), t.roundLengths) o = u.isHorizontal() ? l.outerWidth(!0) : l.outerHeight(!0);
722                                else if (u.isHorizontal()) {
723                                    var dt = parseFloat(a.getPropertyValue("width")),
724                                        ci = parseFloat(a.getPropertyValue("padding-left")),
725                                        li = parseFloat(a.getPropertyValue("padding-right")),
726                                        gt = parseFloat(a.getPropertyValue("margin-left")),
727                                        ni = parseFloat(a.getPropertyValue("margin-right")),
728                                        ti = a.getPropertyValue("box-sizing");
729                                    o = ti && "border-box" === ti ? dt 
729+ gt + ni : dt + ci + li + gt + ni
730                                } else {
731                                    var ii = parseFloat(a.getPropertyValue("height")),
732                                        ai = parseFloat(a.getPropertyValue("padding-top")),
733                                        vi = parseFloat(a.getPropertyValue("padding-bottom")),
734                                        ri = parseFloat(a.getPropertyValue("margin-top")),
735                                        ui = parseFloat(a.getPropertyValue("margin-bottom")),
736                                        fi = a.getPropertyValue("box-sizing");
737                                    o = fi && "border-box" === fi ? ii + ri + ui : ii + ai + vi + ri + ui
738                                }
739                                vt && (l[0].style.transform = vt);
740                                yt && (l[0].style.webkitTransform = yt);
741                                t.roundLengths && (o = Math.floor(o))
742                            } else o = (v - (t.slidesPerView - 1) * s) / t.slidesPerView, t.roundLengths && (o = Math.floor(o)), c[h] && (u.isHorizontal() ? c[h].style.width = o + "px" : c[h].style.height = o + "px");
743                            c[h] && (c[h].swiperSlideSize = o);
744                            ht.push(o);
745                            t.centeredSlides ? (e = e + o / 2 + lt / 2 + s, 0 === lt && 0 !== h && (e = e - v / 2 - s), 0 === h && (e = e - v / 2 - s), Math.abs(e) < .001 && (e = 0), t.roundLengths && (e = Math.floor(e)), at % t.slidesPerGroup == 0 && f.push(e), k.push(e)) : (t.roundLengths && (e = Math.floor(e)), at % t.slidesPerGroup == 0 && f.push(e), k.push(e), e = e + o + s);
746                            u.virtualSize += o + s;
747                            lt = o;
748                            at += 1
749                        }
750                    }
751                    if (u.virtualSize = Math.max(u.virtualSize, v) + ut, st && ei && ("slide" === t.effect || "coverflow" === t.effect) && b.css({
752                            width: u.virtualSize + t.spaceBetween + "px"
753                        }), r.flexbox && !t.setWrapperSize || (u.isHorizontal() ? b.css({
754                            width: u.virtualSize + t.spaceBetween + "px"
755                        }) : b.css({
756                            height: u.virtualSize + t.spaceBetween + "px"
757                        })), 1 < t.slidesPerColumn && (u.virtualSize = (o + t.spaceBetween) * d, u.virtualSize = Math.ceil(u.virtualSize / t.slidesPerColumn) - t.spaceBetween, u.isHorizontal() ? b.css({
758                            width: u.virtualSize + t.spaceBetween + "px"
759                        }) : b.css({
760                            height: u.virtualSize + t.spaceBetween + "px"
761                        }), t.centeredSlides)) {
762                        for (g = [], it = 0; it < f.length; it += 1) ft = f[it], t.roundLengths && (ft = Math.floor(ft)), f[it] < u.virtualSize + f[0] && g.push(ft);
763                        f = g
764                    }
765                    if (!t.centeredSlides) {
766                        for (g = [], rt = 0; rt < f.length; rt += 1) et = f[rt], t.roundLengths && (et = Math.floor(et)), f[rt] <= u.virtualSize - v && g.push(et);
767                        f = g;
768                        1 < Math.floor(u.virtualSize - v) - Math.floor(f[f.length - 1]) && f.push(u.virtualSize - v)
769                    }(0 === f.length && (f = [0]), 0 !== t.spaceBetween && (u.isHorizontal() ? st ? c.css({
770                        marginLeft: s + "px"
771                    }) : c.css({
772                        marginRight: s + "px"
773                    }) : c.css({
774                        marginBottom: s + "px"
775                    })), t.centerInsufficientSlides) && (ot = 0, (ht.forEach(function(n) {
776                        ot += n + (t.spaceBetween ? t.spaceBetween : 0)
777                    }), (ot -= t.spaceBetween) < v) && (pt = (v - ot) / 2, f.forEach(function(n, t) {
778                        f[t] = n - pt
779                    }), k.forEach(function(n, t) {
780                        k[t] = n + pt
781                    })));
782                    n.extend(u, {
783                        slides: c,
784                        snapGrid: f,
785                        slidesGrid: k,
786                        slidesSizesGrid: ht
787                    });
788                    p !== oi && u.emit("slidesLengthChange");
789                    f.length !== si && (u.params.watchOverflow && u.checkOverflow(), u.emit("snapGridLengthChange"));
790                    k.length !== hi && u.emit("slidesGridLengthChange");
791                    (t.watchSlidesProgress || t.watchSlidesVisibility) && u.updateSlidesOffset()
792                }
793            },
794            updateAutoHeight: function(n) {
795                var i, t = this,
796                    r = [],
797                    u = 0,
798                    f, e;
799                if ("number" == typeof n ? t.setTransition(n) : !0 === n && t.setTransition(t.params.speed), "auto" !== t.params.slidesPerView && 1 < t.params.slidesPerView)
800                    for (i = 0; i < Math.ceil(t.params.slidesPerView); i += 1) {
801                        if (f = t.activeIndex + i, f > t.slides.length) break;
802                        r.push(t.slides.eq(f)[0])
803                    } else r.push(t.slides.eq(t.activeIndex)[0]);
804                for (i = 0; i < r.length; i += 1) void 0 !== r[i] && (e = r[i].offsetHeight, u = u < e ? e : u);
805                u && t.$wrapperEl.css("height", u + "px")
806            },
807            updateSlidesOffset: function() {
808                for (var t = this.slides, n = 0; n < t.length; n += 1) t[n].swiperSlideOffset = this.isHorizontal() ? t[n].offsetLeft : t[n].offsetTop
809            },
810            updateSlidesProgress: function(n) {
811                var s, r, f, c, o, h;
812                void 0 === n && (n = this && this.translate || 0);
813                var i = this,
814                    e = i.params,
815                    u = i.slides,
816                    l = i.rtlTranslate;
817                if (0 !== u.length) {
818                    for (void 0 === u[0].swiperSlideOffset && i.updateSlidesOffset(), s = -n, l && (s = n), u.removeClass(e.slideVisibleClass), i.visibleSlidesIndexes = [], i.visibleSlides = [], r = 0; r < u.length; r += 1) f = u[r], c = (s + (e.centeredSlides ? i.minTranslate() : 0) - f.swiperSlideOffset) / (f.swiperSlideSize + e.spaceBetween), e.watchSlidesVisibility && (o = -(s - f.swiperSlideOffset), h = o + i.slidesSizesGrid[r], (0 <= o && o < i.size || 0 < h && h <= i.size || o <= 0 && h >= i.size) && (i.visibleSlides.push(f), i.visibleSlidesIndexes.push(r), u.eq(r).addClass(e.slideVisibleClass))), f.progress = l ? -c : c;
819                    i.visibleSlides = t(i.visibleSlides)
820                }
821            },
822            updateProgress: function(t) {
823                void 0 === t && (t = this && this.translate || 0);
824                var i = this,
825                    e = i.params,
826                    o = i.maxTranslate() - i.minTranslate(),
827                    f = i.progress,
828                    r = i.isBeginning,
829                    u = i.isEnd,
830                    s = r,
831                    h = u;
832                0 === o ? u = r = !(f = 0) : (r = (f = (t - i.minTranslate()) / o) <= 0, u = 1 <= f);
833                n.extend(i, {
834                    progress: f,
835                    isBeginning: r,
836                    isEnd: u
837                });
838                (e.watchSlidesProgress || e.watchSlidesVisibility) && i.updateSlidesProgress(t);
839                r && !s && i.emit("reachBeginning toEdge");
840                u && !h && i.emit("reachEnd toEdge");
841                (s && !r || h && !u) && i.emit("fromEdge");
842                i.emit("progress", f)
843            },
844            updateSlidesClasses: function() {
845                var f, t = this,
846                    e = t.slides,
847                    n = t.params,
848                    i = t.$wrapperEl,
849                    o = t.activeIndex,
850                    s = t.realIndex,
851                    h = t.virtual && n.virtual.enabled,
852                    r, u;
853                e.removeClass(n.slideActiveClass + " " + n.slideNextClass + " " + n.slidePrevClass + " " + n.slideDuplicateActiveClass + " " + n.slideDuplicateNextClass + " " + n.slideDuplicatePrevClass);
854                (f = h ? t.$wrapperEl.find("." + n.slideClass + '[data-swiper-slide-index="' + o + '"]') : e.eq(o)).addClass(n.slideActiveClass);
855                n.loop && (f.hasClass(n.slideDuplicateClass) ? i.children("." + n.slideClass + ":not(." + n.slideDuplicateClass + ')[data-swiper-slide-index="' + s + '"]').addClass(n.slideDuplicateActiveClass) : i.children("." + n.slideClass + "." + n.slideDuplicateClass + '[data-swiper-slide-index="' + s + '"]').addClass(n.slideDuplicateActiveClass));
856                r = f.nextAll("." + n.slideClass).eq(0).addClass(n.slideNextClass);
857                n.loop && 0 === r.length && (r = e.eq(0)).addClass(n.slideNextClass);
858                u = f.prevAll("." + n.slideClass).eq(0).addClass(n.slidePrevClass);
859                n.loop && 0 === u.length && (u = e.eq(-1)).addClass(n.slidePrevClass);
860                n.loop && (r.hasClass(n.slideDuplicateClass) ? i.children("." + n.slideClass + ":not(." + n.slideDuplicateClass + ')[data-swiper-slide-index="' + r.attr("data-swiper-slide-index") + '"]').addClass(n.slideDuplicateNextClass) : i.children("." + n.slideClass + "." + n.slideDuplicateClass + '[data-swiper-slide-index="' + r.attr("data-swiper-slide-index") + '"]').addClass(n.slideDuplicateNextClass), u.hasClass(n.slideDuplicateClass) ? i.children("." + n.slideClass + ":not(." + n.slideDuplicateClass + ')[data-swiper-slide-index="' + u.attr("data-swiper-slide-index") + '"]').addClass(n.slideDuplicatePrevClass) : i.children("." + n.slideClass + "." + n.slideDuplicateClass + '[data-swiper-slide-index="' + u.attr("data-swiper-slide-index") + '"]').addClass(n.slideDuplicatePrevClass))
861            },
862            updateActiveIndex: function(t) {
863                var o, i = this,
864                    e = i.rtlTranslate ? i.translate : -i.translate,
865                    f = i.slidesGrid,
866                    s = i.snapGrid,
867                    c = i.params,
868                    l = i.activeIndex,
869                    a = i.realIndex,
870                    v = i.snapIndex,
871                    u = t,
872                    r, h;
873                if (void 0 === u) {
874                    for (r = 0; r < f.length; r += 1) void 0 !== f[r + 1] ? e >= f[r] && e < f[r + 1] - (f[r + 1] - f[r]) / 2 ? u = r : e >= f[r] && e < f[r + 1] && (u = r + 1) : e >= f[r] && (u = r);
875                    c.normalizeSlideIndex && (u < 0 || void 0 === u) && (u = 0)
876                }((o = 0 <= s.indexOf(e) ? s.indexOf(e) : Math.floor(u / c.slidesPerGroup)) >= s.length && (o = s.length - 1), u !== l) ? (h = parseInt(i.slides.eq(u).attr("data-swiper-slide-index") || u, 10), n.extend(i, {
877                    snapIndex: o,
878                    realIndex: h,
879                    previousIndex: l,
880                    activeIndex: u
881                }), i.emit("activeIndexChange"), i.emit("snapIndexChange"), a !== h && i.emit("realIndexChange"), i.emit("slideChange")) : o !== v && (i.snapIndex = o, i.emit("snapIndexChange"))
882            },
883            updateClickedSlide: function(n) {
884                var i = this,
885                    f = i.params,
886                    r = t(n.target).closest("." + f.slideClass)[0],
887                    e = !1,
888                    u;
889                if (r)
890                    for (u = 0; u < i.slides.length; u += 1) i.slides[u] === r && (e = !0);
891                if (!r || !e) return i.clickedSlide = void 0, void(i.clickedIndex = void 0);
892                i.clickedSlide = r;
893                i.clickedIndex = i.virtual && i.params.virtual.enabled ? parseInt(t(r).attr("data-swiper-slide-index"), 10) : t(r).index();
894                f.slideToClickedSlide && void 0 !== i.clickedIndex && i.clickedIndex !== i.activeIndex && i.slideToClickedSlide()
895            }
896        },
897        ni = {
898            getTranslate: function(t) {
899                var i;
900                void 0 === t && (t = this.isHorizontal() ? "x" : "y");
901                var f = this.params,
902                    r = this.rtlTranslate,
903                    u = this.translate,
904                    e = this.$wrapperEl;
905                return f.virtualTranslate ? r ? -u : u : (i = n.getTranslate(e[0], t), r && (i = -i), i || 0)
906            },
907            setTranslate: function(n, t) {
908                var i = this,
909                    h = i.rtlTranslate,
910                    o = i.params,
911                    s = i.$wrapperEl,
912                    c = i.progress,
913                    u = 0,
914                    f = 0,
915                    e;
916                i.isHorizontal() ? u = h ? -n : n : f = n;
917                o.roundLengths && (u = Math.floor(u), f = Math.floor(f));
918                o.virtualTranslate || (r.transforms3d ? s.transform("translate3d(" + u + "px, " + f + "px, 0px)") : s.transform("translate(" + u + "px, " + f + "px)"));
919                i.previousTranslate = i.translate;
920                i.translate = i.isHorizontal() ? u : f;
921                e = i.maxTranslate() - i.minTranslate();
922                (0 === e ? 0 : (n - i.minTranslate()) / e) !== c && i.updateProgress(n);
923                i.emit("setTranslate", i.translate, t)
924            },
925            minTranslate: function() {
926                return -this.snapGrid[0]
927            },
928            maxTranslate: function() {
929                return -this.snapGrid[this.snapGrid.length - 1]
930            }
931        },
932        ti = {
933            setTransition: function(n, t) {
934                this.$wrapperEl.transition(n);
935                this.emit("setTransition", n, t)
936            },
937            transitionStart: function(n, t) {
938                var r;
939                void 0 === n && (n = !0);
940                var i = this,
941                    u = i.activeIndex,
942                    e = i.params,
943                    f = i.previousIndex;
944                if (e.autoHeight && i.updateAutoHeight(), r = t, r || (r = f < u ? "next" : u < f ? "prev" : "reset"), i.emit("transitionStart"), n && u !== f) {
945                    if ("reset" === r) return void i.emit("slideResetTransitionStart");
946                    i.emit("slideChangeTransitionStart");
947                    "next" === r ? i.emit("slideNextTransitionStart") : i.emit("slidePrevTransitionStart")
948                }
949            },
950            transitionEnd: function(n, t) {
951                var r;
952                void 0 === n && (n = !0);
953                var i = this,
954                    u = i.activeIndex,
955                    f = i.previousIndex;
956                if (i.animating = !1, i.setTransition(0), r = t, r || (r = f < u ? "next" : u < f ? "prev" : "reset"), i.emit("transitionEnd"), n && u !== f) {
957                    if ("reset" === r) return void i.emit("slideResetTransitionEnd");
958                    i.emit("slideChangeTransitionEnd");
959                    "next" === r ? i.emit("slideNextTransitionEnd") : i.emit("slidePrevTransitionEnd")
960                }
961            }
962        },
963        ii = {
964            slideTo: function(n, t, i, u) {
965                var f, e, a, s, o, l;
966                void 0 === n && (n = 0);
967                void 0 === t && (t = this.params.speed);
968                void 0 === i && (i = !0);
969                f = this;
970                e = n;
971                e < 0 && (e = 0);
972                var h = f.params,
973                    v = f.snapGrid,
974                    y = f.slidesGrid,
975                    w = f.previousIndex,
976                    c = f.activeIndex,
977                    p = f.rtlTranslate;
978                if (f.animating && h.preventInteractionOnTransition) return !1;
979                if (a = Math.floor(e / h.slidesPerGroup), a >= v.length && (a = v.length - 1), (c || h.initialSlide || 0) === (w || 0) && i && f.emit("beforeSlideChangeStart"), o = -v[a], f.updateProgress(o), h.normalizeSlideIndex)
980                    for (l = 0; l < y.length; l += 1) - Math.floor(100 * o) >= Math.floor(100 * y[l]) && (e = l);
981                return f.initialized && e !== c && (!f.allowSlideNext && o < f.translate && o < f.minTranslate() || !f.allowSlidePrev && o > f.translate && o > f.maxTranslate() && (c || 0) !== e) ? !1 : (s = c < e ? "next" : e < c ? "prev" : "reset", p && -o === f.translate || !p && o === f.translate ? (f.updateActiveIndex(e), h.autoHeight && f.updateAutoHeight(), f.updateSlidesClasses(), "slide" !== h.effect && f.setTranslate(o), "reset" !== s && (f.transitionStart(i, s), f.transitionEnd(i, s)), !1) : (0 !== t && r.transition ? (f.setTransition(t), f.setTranslate(o), f.updateActiveIndex(e), f.updateSlidesClasses(), f.emit("beforeTransitionStart", t, u), f.transitionStart(i, s), f.animating || (f.animating = !0, f.onSlideToWrapperTransitionEnd || (f.onSlideToWrapperTransitionEnd = function(n) {
982                    f && !f.destroyed && n.target === this && (f.$wrapperEl[0].removeEventListener("transitionend", f.onSlideToWrapperTransitionEnd), f.$wrapperEl[0].removeEventListener("webkitTransitionEnd", f.onSlideToWrapperTransitionEnd), f.onSlideToWrapperTransitionEnd = null, delete f.onSlideToWrapperTransitionEnd, f.transitionEnd(i, s))
983                }), f.$wrapperEl[0].addEventListener("transitionend", f.onSlideToWrapperTransitionEnd), f.$wrapperEl[0].addEventListener("webkitTransitionEnd", f.onSlideToWrapperTransitionEnd))) : (f.setTransition(0), f.setTranslate(o), f.updateActiveIndex(e), f.updateSlidesClasses(), f.emit("beforeTransitionStart", t, u), f.transitionStart(i, s), f.transitionEnd(i, s)), !0))
984            },
985            slideToLoop: function(n, t, i, r) {
986                void 0 === n && (n = 0);
987                void 0 === t && (t = this.params.speed);
988                void 0 === i && (i = !0);
989                var u = n;
990                return this.params.loop && (u += this.loopedSlides), this.slideTo(u, t, i, r)
991            },
992            slideNext: function(n, t, i) {
993                void 0 === n && (n = this.params.speed);
994                void 0 === t && (t = !0);
995                var r = this,
996                    u = r.params,
997                    f = r.animating;
998                return u.loop ? !f && (r.loopFix(), r._clientLeft = r.$wrapperEl[0].clientLeft, r.slideTo(r.activeIndex + u.slidesPerGroup, n, t, i)) : r.slideTo(r.activeIndex + u.slidesPerGroup, n, t, i)
999            },
1000            slidePrev: function(n, t, i) {
1001                function f(n) {
1002                    return n < 0 ? -Math.floor(Math.abs(n)) : Math.floor(n)
1003                }
1004                void 0 === n && (n = this.params.speed);
1005                void 0 === t && (t = !0);
1006                var r = this,
1007                    l = r.params,
1008                    a = r.animating,
1009                    u = r.snapGrid,
1010                    o = r.slidesGrid,
1011                    v = r.rtlTranslate;
1012                if (l.loop) {
1013                    if (a) return !1;
1014                    r.loopFix();
1015                    r._clientLeft = r.$wrapperEl[0].clientLeft
1016                }
1017                var e, s = f(v ? r.translate : -r.translate),
1018                    h = u.map(function(n) {
1019                        return f(n)
1020                    }),
1021                    c = (o.map(function(n) {
1022                        return f(n)
1023                    }), u[h.indexOf(s)], u[h.indexOf(s) - 1]);
1024                return void 0 !== c && (e = o.indexOf(c)) < 0 && (e = r.activeIndex - 1), r.slideTo(e, n, t, i)
1025            },
1026            slideReset: function(n, t, i) {
1027                return void 0 === n && (n = this.params.speed), void 0 === t && (t = !0), this.slideTo(this.activeIndex, n, t, i)
1028            },
1029            slideToClosest: function(n, t, i) {
1030                var o, e;
1031                void 0 === n && (n = this.params.speed);
1032                void 0 === t && (t = !0);
1033                var r = this,
1034                    u = r.activeIndex,
1035                    f = Math.floor(u / r.params.slidesPerGroup);
1036                return f < r.snapGrid.length - 1 && (o = r.rtlTranslate ? r.translate : -r.translate, e = r.snapGrid[f], (r.snapGrid[f + 1] - e) / 2 < o - e && (u = r.params.slidesPerGroup)), r.slideTo(u, n, t, i)
1037            },
1038            slideToClickedSlide: function() {
1039                var f, i = this,
1040                    u = i.params,
1041                    o = i.$wrapperEl,
1042                    e = "auto" === u.slidesPerView ? i.slidesPerViewDynamic() : u.slidesPerView,
1043                    r = i.clickedIndex;
1044                if (u.loop) {
1045                    if (i.animating) return;
1046                    f = parseInt(t(i.clickedSlide).attr("data-swiper-slide-index"), 10);
1047                    u.centeredSlides ? r < i.loopedSlides - e / 2 || r > i.slides.length - i.loopedSlides + e / 2 ? (i.loopFix(), r = o.children("." + u.slideClass + '[data-swiper-slide-index="' + f + '"]:not(.' + u.slideDuplicateClass + ")").eq(0).index(), n.nextTick(function() {
1048                        i.slideTo(r)
1049                    })) : i.slideTo(r) : r > i.slides.length - e ? (i.loopFix(), r = o.children("." + u.slideClass + '[data-swiper-slide-index="' + f + '"]:not(.' + u.slideDuplicateClass + ")").eq(0).index(), n.nextTick(function() {
1050                        i.slideTo(r)
1051                    })) : i.slideTo(r)
1052                } else i.slideTo(r)
1053            }
1054        },
1055        ri = {
1056            loopCreate: function() {
1057                var r = this,
1058                    n = r.params,
1059                    f = r.$wrapperEl,
1060                    i, c, l, a, e, o, s, h;
1061                if (f.children("." + n.slideClass + "." + n.slideDuplicateClass).remove(), i = f.children("." + n.slideClass), n.loopFillGroupWithBlank && (c = n.slidesPerGroup - i.length % n.slidesPerGroup, c !== n.slidesPerGroup)) {
1062                    for (l = 0; l < c; l += 1) a = t(u.createElement("div")).addClass(n.slideClass + " " + n.slideBlankClass), f.append(a);
1063                    i = f.children("." + n.slideClass)
1064                }
1065                for ("auto" !== n.slidesPerView || n.loopedSlides || (n.loopedSlides = i.length), r.loopedSlides = parseInt(n.loopedSlides || n.slidesPerView, 10), r.loopedSlides += n.loopAdditionalSlides, r.loopedSlides > i.length && (r.loopedSlides = i.length), e = [], o = [], i.each(function(n, u) {
1066                        var f = t(u);
1067                        n < r.loopedSlides && o.push(u);
1068                        n < i.length && n >= i.length - r.loopedSlides && e.push(u);
1069                        f.attr("data-swiper-slide-index", n)
1070                    }), s = 0; s < o.length; s += 1) f.append(t(o[s].cloneNode(!0)).addClass(n.slideDuplicateClass));
1071                for (h = e.length - 1; 0 <= h; h -= 1) f.prepend(t(e[h].cloneNode(!0)).addClass(n.slideDuplicateClass))
1072            },
1073            loopFix: function() {
1074                var i, n = this,
1075                    o = n.params,
1076                    r = n.activeIndex,
1077                    f = n.slides,
1078                    t = n.loopedSlides,
1079                    s = n.allowSlidePrev,
1080                    h = n.allowSlideNext,
1081                    c = n.snapGrid,
1082                    e = n.rtlTranslate,
1083                    u;
1084                n.allowSlidePrev = !0;
1085                n.allowSlideNext = !0;
1086                u = -c[r] - n.getTranslate();
1087                r < t ? (i = f.length - 3 * t + r, i += t, n.slideTo(i, 0, !1, !0) && 0 !== u && n.setTranslate((e ? -n.translate : n.translate) - u)) : ("auto" === o.slidesPerView && 2 * t <= r || r >= f.length - t) && (i = -f.length + r + t, i += t, n.slideTo(i, 0, !1, !0) && 0 !== u && n.setTranslate((e ? -n.translate : n.translate) - u));
1088                n.allowSlidePrev = s;
1089                n.allowSlideNext = h
1090            },
1091            loopDestroy: function() {
1092                var t = this.$wrapperEl,
1093                    n = this.params,
1094                    i = this.slides;
1095                t.children("." + n.slideClass + "." + n.slideDuplicateClass + ",." + n.slideClass + "." + n.slideBlankClass).remove();
1096                i.removeAttr("data-swiper-slide-index")
1097            }
1098        },
1099        ui = {
1100            setGrabCursor: function(n) {
1101                if (!(r.touch || !this.params.simulateTouch || this.params.watchOverflow && this.isLocked)) {
1102                    var t = this.el;
1103                    t.style.cursor = "move";
1104                    t.style.cursor = n ? "-webkit-grabbing" : "-webkit-grab";
1105                    t.style.cursor = n ? "-moz-grabbin" : "-moz-grab";
1106                    t.style.cursor = n ? "grabbing" : "grab"
1107                }
1108            },
1109            unsetGrabCursor: function() {
1110                r.touch || this.params.watchOverflow && this.isLocked || (this.el.style.cursor = "")
1111            }
1112        },
1113        fi = {
1114            appendSlide: function(n) {
1115                var t = this,
1116                    f = t.$wrapperEl,
1117                    u = t.params,
1118                    i;
1119                if (u.loop && t.loopDestroy(), "object" == typeof n && "length" in n)
1120                    for (i = 0; i < n.length; i += 1) n[i] && f.append(n[i]);
1121                else f.append(n);
1122                u.loop && t.loopCreate();
1123                u.observer && r.observer || t.update()
1124            },
1125            prependSlide: function(n) {
1126                var t = this,
1127                    u = t.params,
1128                    e = t.$wrapperEl,
1129                    o = t.activeIndex,
1130                    f, i;
1131                if (u.loop && t.loopDestroy(), f = o + 1, "object" == typeof n && "length" in n) {
1132                    for (i = 0; i < n.length; i += 1) n[i] && e.prepend(n[i]);
1133                    f = o + n.length
1134                } else e.prepend(n);
1135                u.loop && t.loopCreate();
1136                u.observer && r.observer || t.update();
1137                t.slideTo(f, 0, !1)
1138            },
1139            addSlide: function(n, t) {
1140                var i = this,
1141                    o = i.$wrapperEl,
1142                    f = i.params,
1143                    u = i.activeIndex,
1144                    h, v, e, s;
1145                if (f.loop && (u -= i.loopedSlides, i.loopDestroy(), i.slides = o.children("." + f.slideClass)), h = i.slides.length, n <= 0) i.prependSlide(t);
1146                else if (h <= n) i.appendSlide(t);
1147                else {
1148                    for (var c = n < u ? u + 1 : u, l = [], a = h - 1; n <= a; a -= 1) v = i.slides.eq(a), v.remove(), l.unshift(v);
1149                    if ("object" == typeof t && "length" in t) {
1150                        for (e = 0; e < t.length; e += 1) t[e] && o.append(t[e]);
1151                        c = n < u ? u + t.length : u
1152                    } else o.append(t);
1153                    for (s = 0; s < l.length; s += 1) o.append(l[s]);
1154                    f.loop && i.loopCreate();
1155                    f.observer && r.observer || i.update();
1156                    f.loop ? i.slideTo(c + i.loopedSlides, 0, !1) : i.slideTo(c, 0, !1)
1157                }
1158            },
1159            removeSlide: function(n) {
1160                var t = this,
1161                    f = t.params,
1162                    s = t.$wrapperEl,
1163                    o = t.activeIndex,
1164                    u, i, e;
1165                if (f.loop && (o -= t.loopedSlides, t.loopDestroy(), t.slides = s.children("." + f.slideClass)), i = o, "object" == typeof n && "length" in n) {
1166                    for (e = 0; e < n.length; e += 1) u = n[e], t.slides[u] && t.slides.eq(u).remove(), u < i && (i -= 1);
1167                    i = Math.max(i, 0)
1168                } else u = n, t.slides[u] && t.slides.eq(u).remove(), u < i && (i -= 1), i = Math.max(i, 0);
1169                f.loop && t.loopCreate();
1170                f.observer && r.observer || t.update();
1171                f.loop ? t.slideTo(i + t.loopedSlides, 0, !1) : t.slideTo(i, 0, !1)
1172            },
1173            removeAllSlides: function() {
1174                for (var t = [], n = 0; n < this.slides.length; n += 1) t.push(n);
1175                this.removeSlide(t)
1176            }
1177        },
1178        e = function() {
1179            var t = i.navigator.userAgent,
1180                n = {
1181                    ios: !1,
1182                    android: !1,
1183                    androidChrome: !1,
1184                    desktop: !1,
1185                    windows: !1,
1186                    iphone: !1,
1187                    ipod: !1,
1188                    ipad: !1,
1189                    cordova: i.cordova || i.phonegap,
1190                    phonegap: i.cordova || i.phonegap
1191                },
1192                s = t.match(/(Windows Phone);?[\s\/]+([\d.]+)?/),
1193                c = t.match(/(Android);?[\s\/]+([\d.]+)?/),
1194                f = t.match(/(iPad).*OS\s([\d_]+)/),
1195                r = t.match(/(iPod)(.*OS\s([\d_]+))?/),
1196                e = !f && t.match(/(iPhone\sOS|iOS)\s([\d_]+)/),
1197                o, h;
1198            return (s && (n.os = "windows", n.osVersion = s[2], n.windows = !0), c && !s && (n.os = "android", n.osVersion = c[2], n.android = !0, n.androidChrome = 0 <= t.toLowerCase().indexOf("chrome")), (f || e || r) && (n.os = "ios", n.ios = !0), e && !r && (n.osVersion = e[2].replace(/_/g, "."), n.iphone = !0), f && (n.osVersion = f[2].replace(/_/g, "."), n.ipad = !0), r && (n.osVersion = r[3] ? r[3].replace(/_/g, ".") : null, n.iphone = !0), n.ios && n.osVersion && 0 <= t.indexOf("Version/") && "10" === n.osVersion.split(".")[0] && (n.osVersion = t.toLowerCase().split("version/")[1].split(" ")[0]), n.desktop = !(n.os || n.android || n.webView), n.webView = (e || f || r) && t.match(/.*AppleWeb
1198Kit(?!.*Safari)/i), n.os && "ios" === n.os) && (o = n.osVersion.split("."), h = u.querySelector('meta[name="viewport"]'), n.minimalUi = !n.webView && (r || e) && (1 * o[0] == 7 ? 1 <= 1 * o[1] : 7 < 1 * o[0]) && h && 0 <= h.getAttribute("content").indexOf("minimal-ui")), n.pixelRatio = i.devicePixelRatio || 1, n
1199        }();
1200    var ei = {
1201            attachEvents: function() {
1202                var f = this,
1203                    o = f.params,
1204                    s = f.touchEvents,
1205                    a = f.el,
1206                    v = f.wrapperEl,
1207                    h, c, l;
1208                f.onTouchStart = function(r) {
1209                    var o = this,
1210                        s = o.touchEventsData,
1211                        e = o.params,
1212                        h = o.touches,
1213                        f, l, v;
1214                    if ((!o.animating || !e.preventInteractionOnTransition) && (f = r, f.originalEvent && (f = f.originalEvent), s.isTouchEvent = "touchstart" === f.type, (s.isTouchEvent || !("which" in f) || 3 !== f.which) && !(!s.isTouchEvent && "button" in f && 0 < f.button || s.isTouched && s.isMoved)))
1215                        if (e.noSwiping && t(f.target).closest(e.noSwipingSelector ? e.noSwipingSelector : "." + e.noSwipingClass)[0]) o.allowClick = !0;
1216                        else if (!e.swipeHandler || t(f).closest(e.swipeHandler)[0]) {
1217                        h.currentX = "touchstart" === f.type ? f.targetTouches[0].pageX : f.pageX;
1218                        h.currentY = "touchstart" === f.type ? f.targetTouches[0].pageY : f.pageY;
1219                        var c = h.currentX,
1220                            y = h.currentY,
1221                            p = e.edgeSwipeDetection || e.iOSEdgeSwipeDetection,
1222                            a = e.edgeSwipeThreshold || e.iOSEdgeSwipeThreshold;
1223                        p && (c <= a || c >= i.screen.width - a) || ((n.extend(s, {
1224                            isTouched: !0,
1225                            isMoved: !1,
1226                            allowTouchCallbacks: !0,
1227                            isScrolling: void 0,
1228                            startMoving: void 0
1229                        }), h.startX = c, h.startY = y, s.touchStartTime = n.now(), o.allowClick = !0, o.updateSize(), o.swipeDirection = void 0, 0 < e.threshold && (s.allowThresholdMove = !1), "touchstart" !== f.type) && (l = !0, t(f.target).is(s.formElements) && (l = !1), u.activeElement && t(u.activeElement).is(s.formElements) && u.activeElement !== f.target && u.activeElement.blur(), v = l && o.allowTouchMove && e.touchStartPreventDefault, (e.touchStartForcePreventDefault || v) && f.preventDefault()), o.emit("touchStart", f))
1230                    }
1231                }.bind(f);
1232                f.onTouchMove = function(i) {
1233                    var f = this,
1234                        r = f.touchEventsData,
1235                        s = f.params,
1236                        e = f.touches,
1237                        b = f.rtlTranslate,
1238                        o = i,
1239                        c, l, w, a, v, h, y, p;
1240                    if (o.originalEvent && (o = o.originalEvent), r.isTouched) {
1241                        if (!r.isTouchEvent || "mousemove" !== o.type) {
1242                            if (c = "touchmove" === o.type ? o.targetTouches[0].pageX : o.pageX, l = "touchmove" === o.type ? o.targetTouches[0].pageY : o.pageY, o.preventedByNestedSwiper) return e.startX = c, void(e.startY = l);
1243                            if (!f.allowTouchMove) return f.allowClick = !1, void(r.isTouched && (n.extend(e, {
1244                                startX: c,
1245                                startY: l,
1246                                currentX: c,
1247                                currentY: l
1248                            }), r.touchStartTime = n.now()));
1249                            if (r.isTouchEvent && s.touchReleaseOnEdges && !s.loop)
1250                                if (f.isVertical()) {
1251                                    if (l < e.startY && f.translate <= f.maxTranslate() || l > e.startY && f.translate >= f.minTranslate()) return r.isTouched = !1, void(r.isMoved = !1)
1252                                } else if (c < e.startX && f.translate <= f.maxTranslate() || c > e.startX && f.translate >= f.minTranslate()) return;
1253                            if (r.isTouchEvent && u.activeElement && o.target === u.activeElement && t(o.target).is(r.formElements)) return r.isMoved = !0, void(f.allowClick = !1);
1254                            if ((r.allowTouchCallbacks && f.emit("touchMove", o), !(o.targetTouches && 1 < o.targetTouches.length)) && (e.currentX = c, e.currentY = l, a = e.currentX - e.startX, v = e.currentY - e.startY, !(f.params.threshold && Math.sqrt(Math.pow(a, 2) + Math.pow(v, 2)) < f.params.threshold)))
1255                                if (void 0 === r.isScrolling && (f.isHorizontal() && e.currentY === e.startY || f.isVertical() && e.currentX === e.startX ? r.isScrolling = !1 : 25 <= a * a + v * v && (w = 180 * Math.atan2(Math.abs(v), Math.abs(a)
vendor: 8,885 bytes, lines 1255-1334
1255) / Math.PI, r.isScrolling = f.isHorizontal() ? w > s.touchAngle : 90 - w > s.touchAngle)), r.isScrolling && f.emit("touchMoveOpposite", o), void 0 === r.startMoving && (e.currentX === e.startX && e.currentY === e.startY || (r.startMoving = !0)), r.isScrolling) r.isTouched = !1;
1256                                else if (r.startMoving) {
1257                                if (f.allowClick = !1, o.preventDefault(), s.touchMoveStopPropagation && !s.nested && o.stopPropagation(), r.isMoved || (s.loop && f.loopFix(), r.startTranslate = f.getTranslate(), f.setTransition(0), f.animating && f.$wrapperEl.trigger("webkitTransitionEnd transitionend"), r.allowMomentumBounce = !1, !s.grabCursor || !0 !== f.allowSlideNext && !0 !== f.allowSlidePrev || f.setGrabCursor(!0), f.emit("sliderFirstMove", o)), f.emit("sliderMove", o), r.isMoved = !0, h = f.isHorizontal() ? a : v, e.diff = h, h *= s.touchRatio, b && (h = -h), f.swipeDirection = 0 < h ? "prev" : "next", r.currentTranslate = h + r.startTranslate, y = !0, p = s.resistanceRatio, s.touchReleaseOnEdges && (p = 0), 0 < h && r.currentTranslate > f.minTranslate() ? (y = !1, s.resistance && (r.currentTranslate = f.minTranslate() - 1 + Math.pow(-f.minTranslate() + r.startTranslate + h, p))) : h < 0 && r.currentTranslate < f.maxTranslate() && (y = !1, s.resistance && (r.currentTranslate = f.maxTranslate() + 1 - Math.pow(f.maxTranslate() - r.startTranslate - h, p))), y && (o.preventedByNestedSwiper = !0), !f.allowSlideNext && "next" === f.swipeDirection && r.currentTranslate < r.startTranslate && (r.currentTranslate = r.startTranslate), !f.allowSlidePrev && "prev" === f.swipeDirection && r.currentTranslate > r.startTranslate && (r.currentTranslate = r.startTranslate), 0 < s.threshold) {
1258                                    if (!(Math.abs(h) > s.threshold || r.allowThresholdMove)) return void(r.currentTranslate = r.startTranslate);
1259                                    if (!r.allowThresholdMove) return r.allowThresholdMove = !0, e.startX = e.currentX, e.startY = e.currentY, r.currentTranslate = r.startTranslate, void(e.diff = f.isHorizontal() ? e.currentX - e.startX : e.currentY - e.startY)
1260                                }
1261                                s.followFinger && ((s.freeMode || s.watchSlidesProgress || s.watchSlidesVisibility) && (f.updateActiveIndex(), f.updateSlidesClasses()), s.freeMode && (0 === r.velocities.length && r.velocities.push({
1262                                    position: e[f.isHorizontal() ? "startX" : "startY"],
1263                                    time: r.touchStartTime
1264                                }), r.velocities.push({
1265                                    position: e[f.isHorizontal() ? "currentX" : "currentY"],
1266                                    time: n.now()
1267                                })), f.updateProgress(r.currentTranslate), f.setTranslate(r.currentTranslate))
1268                            }
1269                        }
1270                    } else r.startMoving && r.isScrolling && f.emit("touchMoveOpposite", o)
1271                }.bind(f);
1272                f.onTouchEnd = function(t) {
1273                    var i = this,
1274                        r = i.touchEventsData,
1275                        u = i.params,
1276                        ot = i.touches,
1277                        g = i.rtlTranslate,
1278                        nt = i.$wrapperEl,
1279                        e = i.slidesGrid,
1280                        h = i.snapGrid,
1281                        c = t,
1282                        l, w, a, k, it, d, v, y, p, ut;
1283                    if (c.originalEvent && (c = c.originalEvent), r.allowTouchCallbacks && i.emit("touchEnd", c), r.allowTouchCallbacks = !1, !r.isTouched) return r.isMoved && u.grabCursor && i.setGrabCursor(!1), r.isMoved = !1, void(r.startMoving = !1);
1284                    if (u.grabCursor && r.isMoved && r.isTouched && (!0 === i.allowSlideNext || !0 === i.allowSlidePrev) && i.setGrabCursor(!1), w = n.now(), a = w - r.touchStartTime, i.allowClick && (i.updateClickedSlide(c), i.emit("tap", c), a < 300 && 300 < w - r.lastClickTime && (r.clickTimeout && clearTimeout(r.clickTimeout), r.clickTimeout = n.nextTick(function() {
1285                            i && !i.destroyed && i.emit("click", c)
1286                        }, 300)), a < 300 && w - r.lastClickTime < 300 && (r.clickTimeout && clearTimeout(r.clickTimeout), i.emit("doubleTap", c))), r.lastClickTime = n.now(), n.nextTick(function() {
1287                            i.destroyed || (i.allowClick = !0)
1288                        }), !r.isTouched || !r.isMoved || !i.swipeDirection || 0 === ot.diff || r.currentTranslate === r.startTranslate) return r.isTouched = !1, r.isMoved = !1, void(r.startMoving = !1);
1289                    if (r.isTouched = !1, r.isMoved = !1, r.startMoving = !1, l = u.followFinger ? g ? i.translate : -i.translate : -r.currentTranslate, u.freeMode) {
1290                        if (l < -i.minTranslate()) return void i.slideTo(i.activeIndex);
1291                        if (l > -i.maxTranslate()) return void(i.slides.length < h.length ? i.slideTo(h.length - 1) : i.slideTo(i.slides.length - 1));
1292                        if (u.freeModeMomentum) {
1293                            if (1 < r.velocities.length) {
1294                                var tt = r.velocities.pop(),
1295                                    ft = r.velocities.pop(),
1296                                    st = tt.position - ft.position,
1297                                    et = tt.time - ft.time;
1298                                i.velocity = st / et;
1299                                i.velocity /= 2;
1300                                Math.abs(i.velocity) < u.freeModeMinimumVelocity && (i.velocity = 0);
1301                                (150 < et || 300 < n.now() - tt.time) && (i.velocity = 0)
1302                            } else i.velocity = 0;
1303                            i.velocity *= u.freeModeMomentumVelocityRatio;
1304                            r.velocities.length = 0;
1305                            var b = 1e3 * u.freeModeMomentumRatio,
1306                                ht = i.velocity * b,
1307                                f = i.translate + ht;
1308                            if (g && (f = -f), d = !1, v = 20 * Math.abs(i.velocity) * u.freeModeMomentumBounceRatio, f < i.maxTranslate()) u.freeModeMomentumBounce ? (f + i.maxTranslate() < -v && (f = i.maxTranslate() - v), k = i.maxTranslate(), d = !0, r.allowMomentumBounce = !0) : f = i.maxTranslate(), u.loop && u.centeredSlides && (it = !0);
1309                            else if (f > i.minTranslate()) u.freeModeMomentumBounce ? (f - i.minTranslate() > v && (f = i.minTranslate() + v), k = i.minTranslate(), d = !0, r.allowMomentumBounce = !0) : f = i.minTranslate(), u.loop && u.centeredSlides && (it = !0);
1310                            else if (u.freeModeSticky) {
1311                                for (p = 0; p < h.length; p += 1)
1312                                    if (h[p] > -f) {
1313                                        y = p;
1314                                        break
1315                                    }
1316                                f = -(f = Math.abs(h[y] - f) < Math.abs(h[y - 1] - f) || "next" === i.swipeDirection ? h[y] : h[y - 1])
1317                            }
1318                            if (it && i.once("transitionEnd", function() {
1319                                    i.loopFix()
1320                                }), 0 !== i.velocity) b = g ? Math.abs((-f - i.translate) / i.velocity) : Math.abs((f - i.translate) / i.velocity);
1321                            else if (u.freeModeSticky) return void i.slideToClosest();
1322                            u.freeModeMomentumBounce && d ? (i.updateProgress(k), i.setTransition(b), i.setTranslate(f), i.transitionStart(!0, i.swipeDirection), i.animating = !0, nt.transitionEnd(function() {
1323                                i && !i.destroyed && r.allowMomentumBounce && (i.emit("momentumBounce"), i.setTransition(u.speed), i.setTranslate(k), nt.transitionEnd(function() {
1324                                    i && !i.destroyed && i.transitionEnd()
1325                                }))
1326                            })) : i.velocity ? (i.updateProgress(f), i.setTransition(b), i.setTranslate(f), i.transitionStart(!0, i.swipeDirection), i.animating || (i.animating = !0, nt.transitionEnd(function() {
1327                                i && !i.destroyed && i.transitionEnd()
1328                            }))) : i.updateProgress(f);
1329                            i.updateActiveIndex();
1330                            i.updateSlidesClasses()
1331                        } else if (u.freeModeSticky) return void i.slideToClosest();
1332                        (!u.freeModeMomentum || a >= u.longSwipesMs) && (i.updateProgress(), i.updateActiveIndex(), i.updateSlidesClasses())
1333                    } else {
1334                        for (var o = 0, rt = i.slidesSizesGrid[0], s = 0; s < e.length; s += u.slidesPerGroup) void 0 !== e[s + u.slidesPerGroup] ? l >
1334= e[s] && l < e[s + u.slidesPerGroup] && (rt = e[(o = s) + u.slidesPerGroup] - e[s]) : l >= e[s] && (o = s, rt = e[e.length - 1] - e[e.length - 2]);
1335                        if (ut = (l - e[o]) / rt, a > u.longSwipesMs) {
1336                            if (!u.longSwipes) return void i.slideTo(i.activeIndex);
1337                            "next" === i.swipeDirection && (ut >= u.longSwipesRatio ? i.slideTo(o + u.slidesPerGroup) : i.slideTo(o));
1338                            "prev" === i.swipeDirection && (ut > 1 - u.longSwipesRatio ? i.slideTo(o + u.slidesPerGroup) : i.slideTo(o))
1339                        } else {
1340                            if (!u.shortSwipes) return void i.slideTo(i.activeIndex);
1341                            "next" === i.swipeDirection && i.slideTo(o + u.slidesPerGroup);
1342                            "prev" === i.swipeDirection && i.slideTo(o)
1343                        }
1344                    }
1345                }.bind(f);
1346                f.onClick = function(n) {
1347                    this.allowClick || (this.params.preventClicks && n.preventDefault(), this.params.preventClicksPropagation && this.animating && (n.stopPropagation(), n.stopImmediatePropagation()))
1348                }.bind(f);
1349                h = "container" === o.touchEventsTarget ? a : v;
1350                c = !!o.nested;
1351                !r.touch && (r.pointerEvents || r.prefixedPointerEvents) ? (h.addEventListener(s.start, f.onTouchStart, !1), u.addEventListener(s.move, f.onTouchMove, c), u.addEventListener(s.end, f.onTouchEnd, !1)) : (r.touch && (l = !("touchstart" !== s.start || !r.passiveListener || !o.passiveListeners) && {
1352                    passive: !0,
1353                    capture: !1
1354                }, h.addEventListener(s.start, f.onTouchStart, l), h.addEventListener(s.move, f.onTouchMove, r.passiveListener ? {
1355                    passive: !1,
1356                    capture: c
1357                } : c), h.addEventListener(s.end, f.onTouchEnd, l)), (o.simulateTouch && !e.ios && !e.android || o.simulateTouch && !r.touch && e.ios) && (h.addEventListener("mousedown", f.onTouchStart, !1), u.addEventListener("mousemove", f.onTouchMove, c), u.addEventListener("mouseup", f.onTouchEnd, !1)));
1358                (o.preventClicks || o.preventClicksPropagation) && h.addEventListener("click", f.onClick, !0);
1359                f.on(e.ios || e.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", at, !0)
1360            },
1361            detachEvents: function() {
1362                var n = this,
1363                    t = n.params,
1364                    i = n.touchEvents,
1365                    h = n.el,
1366                    c = n.wrapperEl,
1367                    f = "container" === t.touchEventsTarget ? h : c,
1368                    o = !!t.nested,
1369                    s;
1370                !r.touch && (r.pointerEvents || r.prefixedPointerEvents) ? (f.removeEventListener(i.start, n.onTouchStart, !1), u.removeEventListener(i.move, n.onTouchMove, o), u.removeEventListener(i.end, n.onTouchEnd, !1)) : (r.touch && (s = !("onTouchStart" !== i.start || !r.passiveListener || !t.passiveListeners) && {
1371                    passive: !0,
1372                    capture: !1
1373                }, f.removeEventListener(i.start, n.onTouchStart, s), f.removeEventListener(i.move, n.onTouchMove, o), f.removeEventListener(i.end, n.onTouchEnd, s)), (t.simulateTouch && !e.ios && !e.android || t.simulateTouch && !r.touch && e.ios) && (f.removeEventListener("mousedown", n.onTouchStart, !1), u.removeEventListener("mousemove", n.onTouchMove, o), u.removeEventListener("mouseup", n.onTouchEnd, !1)));
1374                (t.preventClicks || t.preventClicksPropagation) && f.removeEventListener("click", n.onClick, !0);
1375                n.off(e.ios || e.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", at)
1376            }
1377        },
1378        k, oi = {
1379            setBreakpoint: function() {
1380                var t = this,
1381                    h = t.activeIndex,
1382                    c = t.initialized,
1383                    o = t.loopedSlides,
1384                    f, i, r, u, e, s;
1385                void 0 === o && (o = 0);
1386                f = t.params;
1387                i = f.breakpoints;
1388                i && (!i || 0 !== Object.keys(i).length) && (r = t.getBreakp
1388oint(i), r && t.currentBreakpoint !== r && (u = r in i ? i[r] : void 0, u && ["slidesPerView", "spaceBetween", "slidesPerGroup"].forEach(function(n) {
1389                    var t = u[n];
1390                    void 0 !== t && (u[n] = "slidesPerView" !== n || "AUTO" !== t && "auto" !== t ? "slidesPerView" === n ? parseFloat(t) : parseInt(t, 10) : "auto")
1391                }), e = u || t.originalParams, s = f.loop && e.slidesPerView !== f.slidesPerView, n.extend(t.params, e), n.extend(t, {
1392                    allowTouchMove: t.params.allowTouchMove,
1393                    allowSlideNext: t.params.allowSlideNext,
1394                    allowSlidePrev: t.params.allowSlidePrev
1395                }), t.currentBreakpoint = r, s && c && (t.loopDestroy(), t.loopCreate(), t.updateSlides(), t.slideTo(h - o + t.loopedSlides, 0, !1)), t.emit("breakpoint", e)))
1396            },
1397            getBreakpoint: function(n) {
1398                var t, r, f, u;
1399                if (n) {
1400                    for (t = !1, r = [], Object.keys(n).forEach(function(n) {
1401                            r.push(n)
1402                        }), r.sort(function(n, t) {
1403                            return parseInt(n, 10) - parseInt(t, 10)
1404                        }), f = 0; f < r.length; f += 1) u = r[f], this.params.breakpointsInverse ? u <= i.innerWidth && (t = u) : u >= i.innerWidth && !t && (t = u);
1405                    return t || "max"
1406                }
1407            }
1408        },
1409        v = {
1410            isIE: !!i.navigator.userAgent.match(/Trident/g) || !!i.navigator.userAgent.match(/MSIE/g),
1411            isEdge: !!i.navigator.userAgent.match(/Edge/g),
1412            isSafari: (k = i.navigator.userAgent.toLowerCase(), 0 <= k.indexOf("safari") && k.indexOf("chrome") < 0 && k.indexOf("android") < 0),
1413            isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(i.navigator.userAgent)
1414        },
1415        vt = {
1416            init: !0,
1417            direction: "horizontal",
1418            touchEventsTarget: "container",
1419            initialSlide: 0,
1420            speed: 300,
1421            preventInteractionOnTransition: !1,
1422            edgeSwipeDetection: !1,
1423            edgeSwipeThreshold: 20,
1424            freeMode: !1,
1425            freeModeMomentum: !0,
1426            freeModeMomentumRatio: 1,
1427            freeModeMomentumBounce: !0,
1428            freeModeMomentumBounceRatio: 1,
1429            freeModeMomentumVelocityRatio: 1,
1430            freeModeSticky: !1,
1431            freeModeMinimumVelocity: .02,
1432            autoHeight: !1,
1433            setWrapperSize: !1,
1434            virtualTranslate: !1,
1435            effect: "slide",
1436            breakpoints: void 0,
1437            breakpointsInverse: !1,
1438            spaceBetween: 0,
1439            slidesPerView: 1,
1440            slidesPerColumn: 1,
1441            slidesPerColumnFill: "column",
1442            slidesPerGroup: 1,
1443            centeredSlides: !1,
1444            slidesOffsetBefore: 0,
1445            slidesOffsetAfter: 0,
1446            normalizeSlideIndex: !0,
1447            centerInsufficientSlides: !1,
1448            watchOverflow: !1,
1449            roundLengths: !1,
1450            touchRatio: 1,
1451            touchAngle: 45,
1452            simulateTouch: !0,
1453            shortSwipes: !0,
1454            longSwipes: !0,
1455            longSwipesRatio: .5,
1456            longSwipesMs: 300,
1457            followFinger: !0,
1458            allowTouchMove: !0,
1459            threshold: 0,
1460            touchMoveStopPropagation: !0,
1461            touchStartPreventDefault: !0,
1462            touchStartForcePreventDefault: !1,
1463            touchReleaseOnEdges: !1,
1464            uniqueNavElements: !0,
1465            resistance: !0,
1466            resistanceRatio: .85,
1467            watchSlidesProgress: !1,
1468            watchSlidesVisibility: !1,
1469            grabCursor: !1,
1470            preventClicks: !0,
1471            preventClicksPropagation: !0,
1472            slideToClickedSlide: !1,
1473            preloadImages: !0,
1474            updateOnImagesReady: !0,
1475            loop: !1,
1476            loopAdditionalSlides: 0,
1477            loopedSlides: null,
1478            loopFillGroupWithBlank: !1,
1479            allowSlidePrev: !0,
1480            allowSlideNext: !0,
1481            swipeHandler: null,
1482            noSwiping: !0,
1483            noSwipingClass: "swiper-no-swiping",
1484            noSwipingSelector: null,
1485            passiveListeners: !0,
1486            containerModifierClass: "swiper-container-",
1487            slideClass: "swiper-slide",
1488            slideBlankClass: "swiper-slide-invisible-blank",
1489            slideActiveClass: "swiper-slide-active",
1490            slideDuplicateActiveClass: "swiper-slide-duplicate-active",
1491            slideVisibleClass: "swiper-slide-visible",
1492            slideDuplicateClass: "swiper-slide-duplicate",
1493            slideNextClass: "swiper-slide-next",
1494            slideDuplicateNextClass: "swiper-slide-duplicate-next",
1495            slidePrevClass: "swiper-slide-prev",
1496            slideDuplicatePrevClass: "swiper-slide-duplicate-prev",
1497            wrapperClass: "swiper-wrapper",
1498            runCallbacksOnInit: !0
1499        },
1500        ft = {
1501            update: gt,
1502            translate: ni,
1503            transition: ti,
1504            slide: ii,
1505            loop: ri,
1506            grabCursor: ui,
1507            manipulation: fi,
1508            events: ei,
1509            breakpoints: oi,
1510            checkOverflow: {
1511                checkOverflow: function() {
1512                    var n = this,
1513                        t = n.isLocked;
1514                    n.isLocked = 1 === n.snapGrid.length;
1515                    n.allowSlideNext = !n.isLocked;
1516                    n.allowSlidePrev = !n.isLocked;
1517                    t !== n.isLocked && n.emit(n.isLocked ? "lock" : "unlock");
1518                    t && t !== n.isLocked && (n.isEnd = !1, n.navigation.update())
1519                }
1520            },
1521            classes: {
1522                addClasses: function() {
1523                    var i = this.classNames,
1524                        t = this.params,
1525                        u = this.rtl,
1526                        f = this.$el,
1527                        n = [];
1528                    n.push(t.direction);
1529                    t.freeMode && n.push("free-mode");
1530                    r.flexbox || n.push("no-flexbox");
1531                    t.autoHeight && n.push("autoheight");
1532                    u && n.push("rtl");
1533                    1 < t.slidesPerColumn && n.push("multirow");
1534                    e.android && n.push("android");
1535                    e.ios && n.push("ios");
1536                    (v.isIE || v.isEdge) && (r.pointerEvents || r.prefixedPointerEvents) && n.push("wp8-" + t.direction);
1537                    n.forEach(function(n) {
1538                        i.push(t.containerModifierClass + n)
1539                    });
1540                    f.addClass(i.join(" "))
1541                },
1542                removeClasses: function() {
1543                    var n = this.$el,
1544                        t = this.classNames;
1545                    n.removeClass(t.join(" "))
1546                }
1547            },
1548            images: {
1549                loadImage: function(n, t, r, u, f, e) {
1550                    function s() {
1551                        e && e()
1552                    }
1553                    var o;
1554                    n.complete && f ? s() : t ? ((o = new i.Image).onload = s, o.onerror = s, u && (o.sizes = u), r && (o.srcset = r), t && (o.src = t)) : s()
1555                },
1556                preloadImages: function() {
1557                    function r() {
1558                        null != n && n && !n.destroyed && (void 0 !== n.imagesLoaded && (n.imagesLoaded += 1), n.imagesLoaded === n.imagesToLoad.length && (n.params.updateOnImagesReady && n.update(), n.emit("imagesReady")))
1559                    }
1560                    var n = this,
1561                        i, t;
1562                    for (n.imagesToLoad = n.$el.find("img"), i = 0; i < n.imagesToLoad.length; i += 1) t = n.imagesToLoad[i], n.loadImage(t, t.currentSrc || t.getAttribute("src"), t.srcset || t.getAttribute("srcset"), t.sizes || t.getAttribute("sizes"), !0, r)
1563                }
1564            }
1565        },
1566        et = {},
1567        o = function(i) {
1568            function u() {
1569                for (var w, s, e, f, y, o, p, a, c, v, h = [], l = arguments.length; l--;) h[l] = arguments[l];
1570                return 1 === h.length && h[0].constructor && h[0].constructor === Object ? e = h[0] : (s = (w = h)[0], e = w[1]), e || (e = {}), e = n.extend({}, e), s && !e.el && (e.el = s), i.call(this, e), Object.keys(ft).forEach(function(n) {
1571                    Object.keys(ft[n]).forEach(function(t) {
1572                        u.prototype[t] || (u.prototype[t] = ft[n][t])
1573                    })
1574                }), f = this, void 0 === f.modules && (f.modules = {}), Object.keys(f.modules).forEach(function(n) {
1575                    var r = f.modules[n],
1576                        t, i;
1577                    if (r.params) {
1578                        if (t = Object.keys(r.params)[0], i = r.params[t], "object" != typeof i || null === i) return;
1579                        if (!(t in e && "enabled" in i)) return;
1580                        !0 === e[t] && (e[t] = {
1581                            enabled: !0
1582                        });
1583                        "object" != typeof e[t] || "enabled" in e[t] || (e[t].enabled = !0);
1584                        e[t] || (e[t] = {
1585                            enabled: !1
1586                        })
1587                    }
1588                }), y = n.extend({}, vt), f.useModulesParams(y), f.params = n.extend({}, y, et, e), f.originalParams = n.extend({}, f.params), f.passedParams = n.extend({}, e), o = (f.$ = t)(f.params.el), (s = o[0]) ? 1 < o.length ? (p = [], o.each(function(t, i) {
1589                    var r = n.extend({}, e, {
1590                        el: i
1591                    });
1592                    p.push(new u(r))
1593                }), p) : (s.swiper = f, o.data("swiper", f), v = o.children("." + f.params.wrapperClass), n.extend(f, {
1594                    $el: o,
1595                    el: s,
1596                    $wrapperEl: v,
1597                    wrapperEl: v[0],
1598                    classNames: [],
1599                    slides: t(),
1600                    slidesGrid: [],
1601                    snapGrid: [],
1602                    slidesSizesGrid: [],
1603                    isHorizontal: function() {
1604                        return "horizontal" === f.params.direction
1605                    },
1606                    isVertical: function() {
1607                        return "vertical" === f.params.direction
1608                    },
1609                    rtl: "rtl" === s.dir.toLowerCase() || "rtl" === o.css("direction"),
1610                    rtlTranslate: "horizontal" === f.params.direction && ("rtl" === s.dir.toLowerCase() || "rtl" === o.css("direction")),
1611                    wrongRTL: "-webkit-box" === v.css("display"),
1612                    activeIndex: 0,
1613                    realIndex: 0,
1614                    isBeginning: !0,
1615                    isEnd: !1,
1616                    translate: 0,
1617                    previousTranslate: 0,
1618                    progress: 0,
1619                    velocity: 0,
1620                    animating: !1,
1621                    allowSlideNext: f.params.allowSlideNext,
1622                    allowSlidePrev: f.params.allowSlidePrev,
1623                    touchEvents: (a = ["touchstart", "touchmove", "touchend"], c = ["mousedown", "mousemove", "mouseup"], r.pointerEvents ? c = ["pointerdown", "pointermove", "pointerup"] : r.prefixedPointerEvents && (c = ["MSPointerDown", "MSPointerMove", "MSPointerUp"]), f.touchEventsTouch = {
1624                        start: a[0],
1625                        move: a[1],
1626                        end: a[2]
1627                    }, f.touchEventsDesktop = {
1628                        start: c[0],
1629                        move: c[1],
1630                        end: c[2]
1631                    }, r.touch || !f.params.simulateTouch ? f.touchEventsTouch : f.touchEventsDesktop),
1632                    touchEventsData: {
1633                        isTouched: void 0,
1634                        isMoved: void 0,
1635                        allowTouchCallbacks: void 0,
1636                        touchStartTime: void 0,
1637                        isScrolling: void 0,
1638                        currentTranslate: void 0,
1639                        startTranslate: void 0,
1640                        allowThresholdMove: void 0,
1641                        formElements: "input, select, option, textarea, button, video",
1642                        lastClickTime: n.now(),
1643                        clickTimeout: void 0,
1644                        velocities: [],
1645                        allowMomentumBounce: void 0,
1646                        isTouchEvent: void 0,
1647                        startMoving: void 0
1648                    },
1649                    allowClick: !0,
1650                    allowTouchMove: f.params.allowTouchMove,
1651                    touches: {
1652                        startX: 0,
1653                        startY: 0,
1654                        currentX: 0,
1655                        currentY: 0,
1656                        diff: 0
1657                    },
1658                    imagesToLoad: [],
1659                    imagesLoaded: 0
1660                }), f.useModules(), f.params.init && f.init(), f) : void 0
1661            }
1662            i && (u.__proto__ = i);
1663            var f = {
1664                extendedDefaults: {
1665                    configurable: !0
1666                },
1667                defaults: {
1668                    configurable: !0
1669                },
1670                Class: {
1671                    configurable: !0
1672                },
1673                $: {
1674                    configurable: !0
1675                }
1676            };
1677            return ((u.prototype = Object.create(i && i.prototype)).constructor = u).prototype.slidesPerViewDynamic = function() {
1678                var t = this,
1679                    l = t.params,
1680                    n = t.slides,
1681                    c = t.slidesGrid,
1682                    s = t.size,
1683                    i = t.activeIndex,
1684                    f = 1,
1685                    e, h, r, u, o;
1686                if (l.centeredSlides) {
1687                    for (h = n[i].swiperSlideSize, r = i + 1; r < n.length; r += 1) n[r] && !e && (f += 1, s < (h += n[r].swiperSlideSize) && (e = !0));
1688                    for (u = i - 1; 0 <= u; u -= 1) n[u] && !e && (f += 1, s < (h += n[u].swiperSlideSize) && (e = !0))
1689                } else
1690                    for (o = i + 1; o < n.length; o += 1) c[o] - c[i] < s && (f += 1);
1691                return f
1692            }, u.prototype.update = function() {
1693                function r() {
1694                    var t = n.rtlTranslate ? -1 * n.translate : n.translate,
1695                        i = Math.min(Math.max(t, n.maxTranslate()), n.minTranslate());
1696                    n.setTranslate(i);
1697                    n.updateActiveIndex();
1698                    n.updateSlidesClasses()
1699                }
1700                var n = this,
1701                    i, t;
vendor: 5,247 bytes, lines 1702-1804
1702                n && !n.destroyed && (i = n.snapGrid, t = n.params, t.breakpoints && n.setBreakpoint(), n.updateSize(), n.updateSlides(), n.updateProgress(), n.updateSlidesClasses(), n.params.freeMode ? (r(), n.params.autoHeight && n.updateAutoHeight()) : (("auto" === n.params.slidesPerView || 1 < n.params.slidesPerView) && n.isEnd && !n.params.centeredSlides ? n.slideTo(n.slides.length - 1, 0, !1, !0) : n.slideTo(n.activeIndex, 0, !1, !0)) || r(), t.watchOverflow && i !== n.snapGrid && n.checkOverflow(), n.emit("update"))
1703            }, u.prototype.init = function() {
1704                var n = this;
1705                n.initialized || (n.emit("beforeInit"), n.params.breakpoints && n.setBreakpoint(), n.addClasses(), n.params.loop && n.loopCreate(), n.updateSize(), n.updateSlides(), n.params.watchOverflow && n.checkOverflow(), n.params.grabCursor && n.setGrabCursor(), n.params.preloadImages && n.preloadImages(), n.params.loop ? n.slideTo(n.params.initialSlide + n.loopedSlides, 0, n.params.runCallbacksOnInit) : n.slideTo(n.params.initialSlide, 0, n.params.runCallbacksOnInit), n.attachEvents(), n.initialized = !0, n.emit("init"))
1706            }, u.prototype.destroy = function(t, i) {
1707                void 0 === t && (t = !0);
1708                void 0 === i && (i = !0);
1709                var r = this,
1710                    u = r.params,
1711                    e = r.$el,
1712                    o = r.$wrapperEl,
1713                    f = r.slides;
1714                return void 0 === r.params || r.destroyed || (r.emit("beforeDestroy"), r.initialized = !1, r.detachEvents(), u.loop && r.loopDestroy(), i && (r.removeClasses(), e.removeAttr("style"), o.removeAttr("style"), f && f.length && f.removeClass([u.slideVisibleClass, u.slideActiveClass, u.slideNextClass, u.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index").removeAttr("data-swiper-column").removeAttr("data-swiper-row")), r.emit("destroy"), Object.keys(r.eventsListeners).forEach(function(n) {
1715                    r.off(n)
1716                }), !1 !== t && (r.$el[0].swiper = null, r.$el.data("swiper", null), n.deleteProps(r)), r.destroyed = !0), null
1717            }, u.extendDefaults = function(t) {
1718                n.extend(et, t)
1719            }, f.extendedDefaults.get = function() {
1720                return et
1721            }, f.defaults.get = function() {
1722                return vt
1723            }, f.Class.get = function() {
1724                return i
1725            }, f.$.get = function() {
1726                return t
1727            }, Object.defineProperties(u, f), u
1728        }(h),
1729        si = {
1730            name: "device",
1731            proto: {
1732                device: e
1733            },
1734            "static": {
1735                device: e
1736            }
1737        },
1738        hi = {
1739            name: "support",
1740            proto: {
1741                support: r
1742            },
1743            "static": {
1744                support: r
1745            }
1746        },
1747        ci = {
1748            name: "browser",
1749            proto: {
1750                browser: v
1751            },
1752            "static": {
1753                browser: v
1754            }
1755        },
1756        li = {
1757            name: "resize",
1758            create: function() {
1759                var t = this;
1760                n.extend(t, {
1761                    resize: {
1762                        resizeHandler: function() {
1763                            t && !t.destroyed && t.initialized && (t.emit("beforeResize"), t.emit("resize"))
1764                        },
1765                        orientationChangeHandler: function() {
1766                            t && !t.destroyed && t.initialized && t.emit("orientationchange")
1767                        }
1768                    }
1769                })
1770            },
1771            on: {
1772                init: function() {
1773                    i.addEventListener("resize", this.resize.resizeHandler);
1774                    i.addEventListener("orientationchange", this.resize.orientationChangeHandler)
1775                },
1776                destroy: function() {
1777                    i.removeEventListener("resize", this.resize.resizeHandler);
1778                    i.removeEventListener("orientationchange", this.resize.orientationChangeHandler)
1779                }
1780            }
1781        },
1782        d = {
1783            func: i.MutationObserver || i.WebkitMutationObserver,
1784            attach: function(n, t) {
1785                void 0 === t && (t = {});
1786                var r = this,
1787                    u = new d.func(function(n) {
1788                        if (1 !== n.length) {
1789                            var t = function() {
1790                                r.emit("observerUpdate", n[0])
1791                            };
1792                            i.requestAnimationFrame ? i.requestAnimationFrame(t) : i.setTimeout(t, 0)
1793                        } else r.emit("observerUpdate", n[0])
1794                    });
1795                u.observe(n, {
1796                    attributes: void 0 === t.attributes || t.attributes,
1797                    childList: void 0 === t.childList || t.childList,
1798                    characterData: void 0 === t.characterData || t.characterData
1799                });
1800                r.observer.observers.push(u)
1801            },
1802            init: function() {
1803                var n = this,
1804                    i, t;
1805                if (r.observer && n.params.observer) {
1806                    if (n.params.observeParents)
1807                        for (i = n.$el.parents(), t = 0; t < i.length; t += 1) n.observer.attach(i[t]);
1808                    n.observer.attach(n.$el[0], {
1809                        childList: n.params.observeSlideChildren
1810                    });
1811                    n.observer.attach(n.$wrapperEl[0], {
1812                        attributes: !1
1813                    })
1814                }
1815            },
1816            destroy: function() {
1817                this.observer.observers.forEach(function(n) {
1818                    n.disconnect()
1819                });
1820                this.observer.observers = []
1821            }
1822        },
1823        ai = {
1824            name: "observer",
1825            params: {
1826                observer: !1,
1827                observeParents: !1,
1828                observeSlideChildren: !1
1829            },
1830            create: function() {
1831                n.extend(this, {
1832                    observer: {
1833                        init: d.init.bind(this),
1834                        attach: d.attach.bind(this),
1835                        destroy: d.destroy.bind(this),
1836                        observers: []
1837                    }
1838                })
1839            },
1840            on: {
1841                init: function() {
1842                    this.observer.init()
1843                },
1844                destroy: function() {
1845                    this.observer.destroy()
1846                }
1847            }
1848        },
1849        g = {
1850            update: function(t) {
1851                function ut() {
1852                    i.updateSlides();
1853                    i.updateProgress();
1854                    i.updateSlidesClasses();
1855                    i.lazy && i.params.lazy.enabled && i.lazy.load()
1856                }
1857                var i = this,
1858                    v = i.params,
1859                    y = v.slidesPerView,
1860                    c = v.slidesPerGroup,
1861                    ft = v.centeredSlides,
1862                    nt = i.params.virtual,
1863                    tt = nt.addSlidesBefore,
1864                    it = nt.addSlidesAfter,
1865                    f = i.virtual,
1866                    p = f.from,
1867                    l = f.to,
1868                    s = f.slides,
1869                    et = f.slidesGrid,
1870                    rt = f.renderSlide,
1871                    ot = f.offset,
1872                    w, b, k, d, g, a, o, r;
1873                i.updateActiveIndex();
1874                d = i.activeIndex || 0;
1875                w = i.rtlTranslate ? "right" : i.isHorizontal() ? "left" : "top";
1876                ft ? (b = Math.floor(y / 2) + c + tt, k = Math.floor(y / 2) + c + it) : (b = y + (c - 1) + tt, k = c + it);
1877                var u = Math.max((d || 0) - k, 0),
1878                    e = Math.min((d || 0) + b, s.length - 1),
1879                    h = (i.slidesGrid[u] || 0) - (i.slidesGrid[0] || 0);
1880                if (n.extend(i.virtual, {
1881                        from: u,
1882                        to: e,
1883                        offset: h,
1884                        slidesGrid: i.slidesGrid
1885                    }), p === u && l === e && !t) return i.slidesGrid !== et && h !== ot && i.slides.css(w, h + "px"), void i.updateProgress();
1886                if (i.params.virtual.renderExternal) return i.params.virtual.renderExternal.call(i, {
1887                    offset: h,
1888                    from: u,
1889                    to: e,
1890                    slides: function() {
1891                        for (var t = [], n = u; n <= e; n += 1) t.push(s[n]);
1892                        return t
1893                    }()
1894                }), void ut();
1895                if (g = [], a = [], t) i.$wrapperEl.find("." + i.params.slideClass).remove();
1896                else
1897                    for (o = p; o <= l; o += 1)(o < u || e < o) && i.$wrapperEl.find("." + i.params.slideClass + '[data-swiper-slide-index="' + o + '"]').remove();
1898                for (r = 0; r < s.length; r += 1) u <= r && r <= e && (void 0 === l || t ? a.push(r) : (l < r && a.push(r), r < p && g.push(r)));
1899                a.forEach(function(n) {
1900                    i.$wrapperEl.append(rt(s[n], n))
1901                });
1902                g.sort(function(n, t) {
1903                    return t - n
1904                }
1904).forEach(function(n) {
1905                    i.$wrapperEl.prepend(rt(s[n], n))
1906                });
1907                i.$wrapperEl.children(".swiper-slide").css(w, h + "px");
1908                ut()
1909            },
1910            renderSlide: function(n, i) {
1911                var r = this,
1912                    f = r.params.virtual,
1913                    u;
1914                return f.cache && r.virtual.cache[i] ? r.virtual.cache[i] : (u = f.renderSlide ? t(f.renderSlide.call(r, n, i)) : t('<div class="' + r.params.slideClass + '" data-swiper-slide-index="' + i + '">' + n + "<\/div>"), u.attr("data-swiper-slide-index") || u.attr("data-swiper-slide-index", i), f.cache && (r.virtual.cache[i] = u), u)
1915            },
1916            appendSlide: function(n) {
1917                this.virtual.slides.push(n);
1918                this.virtual.update(!0)
1919            },
1920            prependSlide: function(n) {
1921                var t = this,
1922                    i, r;
1923                (t.virtual.slides.unshift(n), t.params.virtual.cache) && (i = t.virtual.cache, r = {}
1923, Object.keys(i).forEach(function(n) {
1924                    r[n + 1] = i[n]
1925                }), t.virtual.cache = r);
1926                t.virtual.update(!0);
1927                t.slideNext(0)
1928            }
1929        },
1930        vi = {
1931            name: "virtual",
1932            params: {
1933                virtual: {
1934                    enabled: !1,
1935                    slides: [],
1936                    cache: !0,
1937                    renderSlide: null,
1938                    renderExternal: null,
1939                    addSlidesBefore: 0,
1940                    addSlidesAfter: 0
1941                }
1942            },
1943            create: function() {
1944                var t = this;
1945                n.extend(t, {
1946                    virtual: {
1947                        update: g.update.bind(t),
1948                        appendSlide: g.appendSlide.bind(t),
1949                        prependSlide: g.prependSlide.bind(t),
1950                        renderSlide: g.renderSlide.bind(t),
1951                        slides: t.params.virtual.slides,
1952                        cache: {}
1953                    }
1954                })
1955            },
1956            on: {
1957                beforeInit: function() {
1958                    var t = this,
1959                        i;
1960                    t.params.virtual.enabled && (t.classNames.push(t.params.containerModifierClass + "virtual"), i = {
1961                        watchSlidesProgress: !0
1962                    }, n.extend(t.params, i), n.extend(t.originalParams, i), t.params.initialSlide || t.virtual.update(
1962))
1963                },
1964                setTranslate: function() {
1965                    this.params.virtual.enabled && this.virtual.update()
1966                }
1967            }
1968        },
1969        ot = {
1970            handle: function(n) {
1971                var t = this,
1972                    o = t.rtlTranslate,
1973                    f = n,
1974                    r, c, l, h, s;
1975                if ((f.originalEvent && (f = f.originalEvent), r = f.keyCode || f.charCode, !t.allowSlideNext && (t.isHorizontal() && 39 === r || t.isVertical() && 40 === r)) || !t.allowSlidePrev && (t.isHorizontal() && 37 === r || t.isVertical() && 38 === r)) return !1;
1976                if (!(f.shiftKey || f.altKey || f.ctrlKey || f.metaKey || u.activeElement && u.activeElement.nodeName && ("input" === u.activeElement.nodeName.toLowerCase() || "textarea" === u.activeElement.nodeName.toLowerCase()))) {
1977                    if (t.params.keyboard.onlyInViewport && (37 === r || 39 === r || 38 === r || 40 === r)) {
1978                        if (c = !1, 0 < t.$el.parents("." + t.params.slideClass).length && 0 === t.$el.parents("." + t.params.slideActiveClass).length) return;
1979                        var a = i.innerWidth,
1980                            v = i.innerHeight,
1981                            e = t.$el.offset();
1982                        for (o && (e.left -= t.$el[0].scrollLeft), l = [
1983                                [e.left, e.top],
1984                                [e.left + t.width, e.top],
1985                                [e.left, e.top + t.height],
1986                                [e.left + t.width, e.top + t.height]
1987                            ], h = 0; h < l.length; h += 1) s = l[h], 0 <= s[0] && s[0] <= a && 0 <= s[1] && s[1] <= v && (c = !0);
1988                        if (!c) return
1989                    }
1990                    t.isHorizontal() ? (37 !== r && 39 !== r || (f.preventDefault ? f.preventDefault() : f.returnValue = !1), (39 === r && !o || 37 === r && o) && t.slideNext(), (37 === r && !o || 39 === r && o) && t.slidePrev()) : (38 !== r && 40 !== r || (f.preventDefault ? f.preventDefault() : f.returnValue = !1), 40 === r && t.slideNext(), 38 === r && t.slidePrev());
1991                    t.emit("keyPress", r)
1992                }
1993            },
1994            enable: function() {
1995                this.keyboard.enabled || (t(u).on("keydown", this.keyboard.handle), this.keyboard.enabled = !0)
1996            },
1997            disable: function() {
1998                this.keyboard.enabled && (t(u).off("keydown", this.keyboard.handle), this.keyboard.enabled = !1)
1999            }
2000        },
2001        yi = {
2002            name: "keyboard",
2003            params: {
2004                keyboard: {
2005                    enabled: !1,
2006                    onlyInViewport: !0
2007                }
2008            },
2009            create: function() {
2010                n.extend(this, {
2011                    keyboard: {
2012                        enabled: !1,
2013                        enable: ot.enable.bind(this),
2014                        disable: ot.disable.bind(this),
2015                        handle: ot.handle.bind(this)
2016                    }
2017                })
2018            },
2019            on: {
2020                init: function() {
2021                    this.params.keyboard.enabled && this.keyboard.enable()
2022                },
2023                destroy: function() {
2024                    this.keyboard.enabled && this.keyboard.disable()
2025                }
2026            }
2027        },
2028        c = {
2029            lastScrollTime: n.now(),
2030            event: -1 < i.navigator.userAgent.indexOf("firefox") ? "DOMMouseScroll" : function() {
2031                var t = "onwheel",
2032                    n = t in u,
2033                    i;
2034                return n || (i = u.createElement("div"), i.setAttribute(t, "return;"), n = "function" == typeof i[t]), !n && u.implementation && u.implementation.hasFeature && !0 !== u.implementation.hasFeature("", "") && (n = u.implementation.hasFeature("Events.wheel", "3.0")), n
2035            }() ? "wheel" : "mousewheel",
2036            normalize: function(n) {
2037                var u = 0,
2038                    t = 0,
2039                    i = 0,
2040                    r = 0;
2041                return "detail" in n && (t = n.detail), "wheelDelta" in n && (t = -n.wheelDelta / 120), "wheelDeltaY" in n && (t = -n.wheelDeltaY / 120), "wheelDeltaX" in n && (u = -n.wheelDeltaX / 120), "axis" in n && n.axis === n.HORIZONTAL_AXIS && (u = t, t = 0), i = 10 * u, r = 10 * t, "deltaY" in n && (r = n.deltaY), "deltaX" in n && (i = n.deltaX), (i || r) && n.deltaMode && (1 === n.deltaMode ? (i *= 40, r *= 40) : (i *= 800, r *= 800)), i && !u && (u = i < 1 ? -1 : 1), r && !t && (t = r < 1 ? -1 : 1), {
2042                    spinX: u,
2043                    spinY: t,
2044                    pixelX: i,
2045                    pixelY: r
2046                }
2047            },
2048            handleMouseEnter: function() {
2049                this.mouseEntered = !0
2050            },
2051            handleMouseLeave: function() {
2052                this.mouseEntered = !1
2053            },
2054            handle: function(t) {
2055                var u = t,
2056                    r = this,
2057                    s = r.params.mousewheel;
2058                if (!r.mouseEntered && !s.releaseOnEdges) return !0;
2059                u.originalEvent && (u = u.originalEvent);
2060                var e = 0,
2061                    h = r.rtlTranslate ? -1 : 1,
2062                    f = c.normalize(u);
2063                if (s.forceToAxis)
2064                    if (r.isHorizontal()) {
2065                        if (!(Math.abs(f.pixelX) > Math.abs(f.pixelY))) return !0;
2066                        e = f.pixelX * h
2067                    } else {
2068                        if (!(Math.abs(f.pixelY) > Math.abs(f.pixelX))) return !0;
2069                        e = f.pixelY
2070                    } else e = Math.abs(f.pixelX) > Math.abs(f.pixelY) ? -f.pixelX * h : -f.pixelY;
2071                if (0 === e) return !0;
2072                if (s.invert && (e = -e), r.params.freeMode) {
2073                    r.params.loop && r.loopFix();
2074                    var o = r.getTranslate() + e * s.sensitivity,
2075                        l = r.isBeginning,
2076                        a = r.isEnd;
2077                    if (o >= r.minTranslate() && (o = r.minTranslate()), o <= r.maxTranslate() && (o = r.maxTranslate()), r.setTransition(0), r.setTranslate(o), r.updateProgress(), r.updateActiveIndex(), r.updateSlidesClasses(), (!l && r.isBeginning || !a && r.isEnd) && r.updateSlidesClasses(), r.params.freeModeSticky && (clearTimeout(r.mousewheel.timeout), r.mousewheel.timeout = n.nextTick(function() {
2078                            r.slideToClosest()
2079                        }, 300)), r.emit("scroll", u), r.params.autoplay && r.params.autoplayDisableOnInteraction && r.autoplay.stop(), o === r.minTranslate() || o === r.maxTranslate()) return !0
2080                } else {
2081                    if (60 < n.now() - r.mousewheel.lastScrollTime)
2082                        if (e < 0)
2083                            if (r.isEnd && !r.params.loop || r.animating) {
2084                                if (s.releaseOnEdges) return !0
2085                            } else r.slideNext(), r.emit("scroll", u);
2086                    else if (r.isBeginning && !r.params.loop || r.animating) {
2087                        if (s.releaseOnEdges) return !0
2088                    } else r.slidePrev(), r.emit("scroll", u);
2089                    r.mousewheel.lastScrollTime = (new i.Date).getTime()
2090                }
2091                return u.preventDefault ? u.preventDefault() : u.returnValue = !1, !1
2092            },
2093            enable: function() {
2094                var n = this,
2095                    i;
2096                return c.event ? n.mousewheel.enabled ? !1 : (i = n.$el, "container" !== n.params.mousewheel.eventsTarged && (i = t(n.params.mousewheel.eventsTarged)), i.on("mouseenter", n.mousewheel.handleMouseEnter), i.on("mouseleave", n.mousewheel.handleMouseLeave), i.on(c.event, n.mousewheel.handle), n.mousewheel.enabled = !0) : !1
2097            },
2098            disable: function() {
2099                var n = this,
2100                    i;
2101                return c.event ? n.mousewheel.enabled ? (i = n.$el, "container" !== n.params.mousewheel.eventsTarged && (i = t(n.params.mousewheel.eventsTarged)), i.off(c.event, n.mousewheel.handle), !(n.mousewheel.enabled = !1)) : !1 : !1
2102            }
2103        },
2104        y = {
2105            update: function() {
2106                var n = this,
2107                    t = n.params.navigation;
2108                if (!n.params.loop) {
2109                    var u = n.navigation,
2110                        i = u.$nextEl,
2111                        r = u.$prevEl;
2112                    r && 0 < r.length && (n.isBeginning ? r.addClass(t.disabledClass) : r.removeClass(t.disabledClass), r[n.params.watchOverflow && n.isLocked ? "addClass" : "removeClass"](t.lockClass));
2113                    i && 0 < i.length && (n.isEnd ? i.addClass(t.disabledClass) : i.removeClass(t.disabledClass), i[n.params.watchOverflow && n.isLocked ? "addClass" : "removeClass"](t.lockClass))
2114                }
2115            },
2116            onPrevClick: function(n) {
2117                n.preventDefault();
vendor: 4,163 bytes, lines 2118-2161
2118                this.isBeginning && !this.params.loop || this.slidePrev()
2119            },
2120            onNextClick: function(n) {
2121                n.preventDefault();
2122                this.isEnd && !this.params.loop || this.slideNext()
2123            },
2124            init: function() {
2125                var u, f, r = this,
2126                    i = r.params.navigation;
2127                (i.nextEl || i.prevEl) && (i.nextEl && (u = t(i.nextEl), r.params.uniqueNavElements && "string" == typeof i.nextEl && 1 < u.length && 1 === r.$el.find(i.nextEl).length && (u = r.$el.find(i.nextEl))), i.prevEl && (f = t(i.prevEl), r.params.uniqueNavElements && "string" == typeof i.prevEl && 1 < f.length && 1 === r.$el.find(i.prevEl).length && (f = r.$el.find(i.prevEl))), u && 0 < u.length && u.on("click", r.navigation.onNextClick), f && 0 < f.length && f.on("click", r.navigation.onPrevClick), n.extend(r.navigation, {
2128                    $nextEl: u,
2129                    nextEl: u && u[0],
2130                    $prevEl: f,
2131                    prevEl: f && f[0]
2132                }))
2133            },
2134            destroy: function() {
2135                var n = this,
2136                    r = n.navigation,
2137                    t = r.$nextEl,
2138                    i = r.$prevEl;
2139                t && t.length && (t.off("click", n.navigation.onNextClick), t.removeClass(n.params.navigation.disabledClass));
2140                i && i.length && (i.off("click", n.navigation.onPrevClick), i.removeClass(n.params.navigation.disabledClass))
2141            }
2142        },
2143        nt = {
2144            update: function() {
2145                var n = this,
2146                    w = n.rtl,
2147                    i = n.params.pagination,
2148                    e, s, l, u, a;
2149                if (i.el && n.pagination.el && n.pagination.$el && 0 !== n.pagination.$el.length) {
2150                    var r, h = n.virtual && n.params.virtual.enabled ? n.virtual.slides.length : n.slides.length,
2151                        f = n.pagination.$el,
2152                        o = n.params.loop ? Math.ceil((h - 2 * n.loopedSlides) / n.params.slidesPerGroup) : n.snapGrid.length;
2153                    if (n.params.loop ? ((r = Math.ceil((n.activeIndex - n.loopedSlides) / n.params.slidesPerGroup)) > h - 1 - 2 * n.loopedSlides && (r -= h - 2 * n.loopedSlides), o - 1 < r && (r -= o), r < 0 && "bullets" !== n.params.paginationType && (r = o + r)) : r = void 0 !== n.snapIndex ? n.snapIndex : n.activeIndex || 0, "bullets" === i.type && n.pagination.bullets && 0 < n.pagination.bullets.length) {
2154                        if (u = n.pagination.bullets, i.dynamicBullets && (n.pagination.bulletSize = u.eq(0)[n.isHorizontal() ? "outerWidth" : "outerHeight"](!0), f.css(n.isHorizontal() ? "width" : "height", n.pagination.bulletSize * (i.dynamicMainBullets + 4) + "px"), 1 < i.dynamicMainBullets && void 0 !== n.previousIndex && (n.pagination.dynamicBulletIndex += r - n.previousIndex, n.pagination.dynamicBulletIndex > i.dynamicMainBullets - 1 ? n.pagination.dynamicBulletIndex = i.dynamicMainBullets - 1 : n.pagination.dynamicBulletIndex < 0 && (n.pagination.dynamicBulletIndex = 0)), e = r - n.pagination.dynamicBulletIndex, l = ((s = e + (Math.min(u.length, i.dynamicMainBullets) - 1)) + e) / 2), u.removeClass(i.bulletActiveClass + " " + i.bulletActiveClass + "-next " + i.bulletActiveClass + "-next-next " + i.bulletActiveClass + "-prev " + i.bulletActiveClass + "-prev-prev " + i.bulletActiveClass + "-main"), 1 < f.length) u.each(function(n, u) {
2155                            var f = t(u),
2156                                o = f.index();
2157                            o === r && f.addClass(i.bulletActiveClass);
2158                            i.dynamicBullets && (e <= o && o <= s && f.addClass(i.bulletActiveClass + "-main"), o === e && f.prev().addClass(i.bulletActiveClass + "-prev").prev().addClass(i.bulletActiveClass + "-prev-prev"), o === s && f.next().addClass(i.bulletActiveClass + "-next").next().addClass(i.bulletActiveClass + "-next-next"))
2159                        });
2160                        else if (u.eq(r).addClass(i.bulletActiveClass), i.dynamicBullets) {
2161                            for (var b = u.eq(e), k = u.eq(s), c = e; c <= s;
2161 c += 1) u.eq(c).addClass(i.bulletActiveClass + "-main");
2162                            b.prev().addClass(i.bulletActiveClass + "-prev").prev().addClass(i.bulletActiveClass + "-prev-prev");
2163                            k.next().addClass(i.bulletActiveClass + "-next").next().addClass(i.bulletActiveClass + "-next-next")
2164                        }
2165                        if (i.dynamicBullets) {
2166                            var d = Math.min(u.length, i.dynamicMainBullets + 4),
2167                                g = (n.pagination.bulletSize * d - n.pagination.bulletSize) / 2 - l * n.pagination.bulletSize,
2168                                nt = w ? "right" : "left";
2169                            u.css(n.isHorizontal() ? nt : "top", g + "px")
2170                        }
2171                    }
2172                    if ("fraction" === i.type && (f.find("." + i.currentClass).text(i.formatFractionCurrent(r + 1)), f.find("." + i.totalClass).text(i.formatFractionTotal(o))), "progressbar" === i.type) {
2173                        a = i.progressbarOpposite ? n.isHorizontal() ? "vertical" : "horizontal" : n.isHorizontal() ? "horizontal" : "vertical";
2174                        var v = (r + 1) / o,
2175                            y = 1,
2176                            p = 1;
2177                        "horizontal" === a ? y = v : p = v;
2178                        f.find("." + i.progressbarFillClass).transform("translate3d(0,0,0) scaleX(" + y + ") scaleY(" + p + ")").transition(n.params.speed)
2179                    }
2180                    "custom" === i.type && i.renderCustom ? (f.html(i.renderCustom(n, r + 1, o)), n.emit("paginationRender", n, f[0])) : n.emit("paginationUpdate", n, f[0]);
2181                    f[n.params.watchOverflow && n.isLocked ? "addClass" : "removeClass"](i.lockClass)
2182                }
2183            },
2184            render: function() {
2185                var t = this,
2186                    n = t.params.pagination,
2187                    f, u;
2188                if (n.el && t.pagination.el && t.pagination.$el && 0 !== t.pagination.$el.length) {
2189                    var e = t.virtual && t.params.virtual.enabled ? t.virtual.slides.length : t.slides.length,
2190                        r = t.pagination.$el,
2191                        i = "";
2192                    if ("bullets" === n.type) {
2193                        for (f = t.params.loop ? Math.ceil((e - 2 * t.loopedSlides) / t.params.slidesPerGroup) : t.snapGrid.length, u = 0; u < f; u += 1) i += n.renderBullet ? n.renderBullet.call(t, u, n.bulletClass) : "<" + n.bulletElement + ' class="' + n.bulletClass + '"><\/' + n.bulletElement + ">";
2194                        r.html(i);
2195                        t.pagination.bullets = r.find("." + n.bulletClass)
2196                    }
2197                    "fraction" === n.type && (i = n.renderFraction ? n.renderFraction.call(t, n.currentClass, n.totalClass) : '<span class="' + n.currentClass + '"><\/span> / <span class="' + n.totalClass + '"><\/span>', r.html(i));
2198                    "progressbar" === n.type && (i = n.renderProgressbar ? n.renderProgressbar.call(t, n.progressbarFillClass) : '<span class="' + n.progressbarFillClass + '"><\/span>', r.html(i));
2199                    "custom" !== n.type && t.emit("paginationRender", t.pagination.$el[0])
2200                }
2201            },
2202            init: function() {
2203                var u = this,
2204                    i = u.params.pagination,
2205                    r;
2206                i.el && (r = t(i.el), 0 !== r.length && (u.params.uniqueNavElements && "string" == typeof i.el && 1 < r.length && 1 === u.$el.find(i.el).length && (r = u.$el.find(i.el)), "bullets" === i.type && i.clickable && r.addClass(i.clickableClass), r.addClass(i.modifierClass + i.type), "bullets" === i.type && i.dynamicBullets && (r.addClass("" + i.modifierClass + i.type + "-dynamic"), u.pagination.dynamicBulletIndex = 0, i.dynamicMainBullets < 1 && (i.dynamicMainBullets = 1)), "progressbar" === i.type && i.progressbarOpposite && r.addClass(i.progressbarOppositeClass), i.clickable && r.on("click", "." + i.bulletClass, function(n) {
2207                    n.preventDefault();
2208                    var i = t(this).index() * u.params.slidesPerGroup;
2209                    u.params.loop && (i += u.loopedSlides);
2210                    u.slideTo(i)
2211                }), n.extend(u.pagination, {
2212                    $el: r,
2213                    el: r[0]
2214                })))
2215            },
2216            destroy: function() {
2217                var n = this,
2218                    t = n.params.pagination,
2219                    i;
2220                t.el && n.pagination.el && n.pagination.$el && 0 !== n.pagination.$el.length && (i = n.pagination.$el, i.removeClass(t.hiddenClass), i.removeClass(t.modifierClass + t.type), n.pagination.bullets && n.pagination.bullets.removeClass(t.bulletActiveClass), t.clickable && i.off("click", "." + t.bulletClass))
2221            }
2222        },
2223        s = {
2224            setTranslate: function() {
2225                var t = this;
2226                if (t.params.scrollbar.el && t.scrollbar.el) {
2227                    var o = t.scrollbar,
2228                        h = t.rtlTranslate,
2229                        c = t.progress,
2230                        i = o.dragSize,
2231                        e = o.trackSize,
2232                        u = o.$dragEl,
2233                        s = o.$el,
2234                        l = t.params.scrollbar,
2235                        f = i,
2236                        n = (e - i) * c;
2237                    h ? 0 < (n = -n) ? (f = i - n, n = 0) : e < -n + i && (f = e + n) : n < 0 ? (f = i + n, n = 0) : e < n + i && (f = e - n);
2238                    t.isHorizontal() ? (r.transforms3d ? u.transform("translate3d(" + n + "px, 0, 0)") : u.transform("translateX(" 
2238+ n + "px)"), u[0].style.width = f + "px") : (r.transforms3d ? u.transform("translate3d(0px, " + n + "px, 0)") : u.transform("translateY(" + n + "px)"), u[0].style.height = f + "px");
2239                    l.hide && (clearTimeout(t.scrollbar.timeout), s[0].style.opacity = 1, t.scrollbar.timeout = setTimeout(function() {
2240                        s[0].style.opacity = 0;
2241                        s.transition(400)
2242                    }, 1e3))
2243                }
2244            },
2245            setTransition: function(n) {
2246                this.params.scrollbar.el && this.scrollbar.el && this.scrollbar.$dragEl.transition(n)
2247            },
2248            updateSize: function() {
2249                var t = this;
2250                if (t.params.scrollbar.el && t.scrollbar.el) {
2251                    var i = t.scrollbar,
2252                        r = i.$dragEl,
2253                        u = i.$el;
2254                    r[0].style.width = "";
2255                    r[0].style.height = "";
2256                    var f, o = t.isHorizontal() ? u[0].offsetWidth : u[0].offsetHeight,
2257                        e = t.size / t.virtualSize,
2258                        s = e * (o / t.size);
2259                    f = "auto" === t.params.scrollbar.dragSize ? o * e : parseInt(t.params.scrollbar.dragSize, 10);
2260                    t.isHorizontal() ? r[0].style.width = f + "px" : r[0].style.height = f + "px";
2261                    u[0].style.display = 1 <= e ? "none" : "";
2262                    t.params.scrollbarHide && (u[0].style.opacity = 0);
2263                    n.extend(i, {
2264                        trackSize: o,
2265                        divider: e,
2266                        moveDivider: s,
2267                        dragSize: f
2268                    });
2269                    i.$el[t.params.watchOverflow && t.isLocked ? "addClass" : "removeClass"](t.params.scrollbar.lockClass)
2270                }
2271            },
2272            setDragPosition: function(n) {
2273                var i, t = this,
2274                    r = t.scrollbar,
2275                    e = t.rtlTranslate,
2276                    o = r.$el,
2277                    f = r.dragSize,
2278                    s = r.trackSize,
2279                    u;
2280                i = ((t.isHorizontal() ? "touchstart" === n.type || "touchmove" === n.type ? n.targetTouches[0].pageX : n.pageX || n.clientX : "touchstart" === n.type || "touchmove" === n.type ? n.targetTouches[0].pageY : n.pageY || n.clientY) - o.offset()[t.isHorizontal() ? "left" : "top"] - f / 2) / (s - f);
2281                i = Math.max(Math.min(i, 1), 0);
2282                e && (i = 1 - i);
2283                u = t.minTranslate() + (t.maxTranslate() - t.minTranslate()) * i;
2284                t.updateProgress(u);
2285                t.setTranslate(u);
2286                t.updateActiveIndex();
2287                t.updateSlidesClasses()
2288            },
2289            onDragStart: function(n) {
2290                var t = this,
2291                    u = t.params.scrollbar,
2292                    i = t.scrollbar,
2293                    f = t.$wrapperEl,
2294                    r = i.$el,
2295                    e = i.$dragEl;
2296                t.scrollbar.isTouched = !0;
2297                n.preventDefault();
2298                n.stopPropagation();
2299                f.transition(100);
2300                e.transition(100);
2301                i.setDragPosition(n);
2302                clearTimeout(t.scrollbar.dragTimeout);
2303                r.transition(0);
2304                u.hide && r.css("opacity", 1);
2305                t.emit("scrollbarDragStart", n)
2306            },
2307            onDragMove: function(n) {
2308                var t = this.scrollbar,
2309                    i = this.$wrapperEl,
2310                    r = t.$el,
2311                    u = t.$dragEl;
2312                this.scrollbar.isTouched && (n.preventDefault ? n.preventDefault() : n.returnValue = !1, t.setDragPosition(n), i.transition(0), r.transition(0), u.transition(0), this.emit("scrollbarDragMove", n))
2313            },
2314            onDragEnd: function(t) {
2315                var i = this,
2316                    r = i.params.scrollbar,
2317                    u = i.scrollbar.$el;
2318                i.scrollbar.isTouched && (i.scrollbar.isTouched = !1, r.hide && (clearTimeout(i.scrollbar.dragTimeout), i.scrollbar.dragTimeout = n.nextTick(function() {
2319                    u.css("opacity", 0);
2320                    u.transition(400)
2321                }, 1e3)), i.emit("scrollbarDragEnd", t), r.snapOnRelease && i.slideToClosest())
2322            },
2323            enableDraggable: function() {
2324                var n = this;
2325                if (n.params.scrollbar.el) {
2326                    var h = n.scrollbar,
2327                        f = n.touchEventsTouch,
2328                        e = n.touchEventsDesktop,
2329                        o = n.params,
2330                        t = h.$el[0],
2331                        i = !(!r.passiveListener || !o.passiveListeners) && {
2332                            passive: !1,
2333                            capture: !1
2334                        },
2335                        s = !(!r.passiveListener || !o.passiveListeners) && {
2336                            passive: !0,
2337                            capture: !1
2338                        };
2339                    r.touch ? (t.addEventListener(f.start, n.scrollbar.onDragStart, i), t.addEventListener(f.move, n.scrollbar.onDragMove, i), t.addEventListener(f.end, n.scrollbar.onDragEnd, s)) : (t.addEventListener(e.start, n.scrollbar.onDragStart, i), u.addEventListener(e.move, n.scrollbar.onDragMove, i), u.addEventListener(e.end, n.scrollbar.onDragEnd, s))
2340                }
2341            },
2342            disableDraggable: function() {
2343                var n = this;
2344                if (n.params.scrollbar.el) {
2345                    var h = n.scrollbar,
2346                        f = n.touchEventsTouch,
2347                        e = n.touchEventsDesktop,
2348                        o = n.params,
2349                        t = h.$el[0],
2350                        i = !(!r.passiveListener || !o.passiveListeners) && {
2351                            passive: !1,
2352                            capture: !1
2353                        },
2354                        s = !(!r.passiveListener || !o.passiveListeners) && {
2355                            passive: !0,
2356                            capture: !1
2357                        };
2358                    r.touch ? (t.removeEventListener(f.start, n.scrollbar.onDragStart, i), t.removeEventListener(f.move, n.scrollbar.onDragMove, i), t.removeEventListener(f.end, n.scrollbar.onDragEnd, s)) : (t.removeEventListener(e.start, n.scrollbar.onDragStart, i), u.removeEventListener(e.move, n.scrollbar.onDragMove, i), u.removeEventListener(e.end, n.scrollbar.onDragEnd, s))
2359                }
2360            },
2361            init: function() {
2362                var i = this,
2363                    u;
2364                if (i.params.scrollbar.el) {
2365                    var e = i.scrollbar,
2366                        o = i.$el,
2367                        f = i.params.scrollbar,
2368                        r = t(f.el);
2369                    i.params.uniqueNavElements && "string" == typeof f.el && 1 < r.length && 1 === o.find(f.el).length && (r = o.find(f.el));
2370                    u = r.find("." + i.params.scrollbar.dragClass);
2371                    0 === u.length && (u = t('<div class="' + i.params.scrollbar.dragClass + '"><\/div>'), r.append(u));
2372                    n.extend(e, {
2373                        $el: r,
2374                        el: r[0],
2375                        $dragEl: u,
2376                        dragEl: u[0]
2377                    });
2378                    f.draggable && e.enableDraggable()
2379                }
2380            },
2381            destroy: function() {
2382                this.scrollbar.disableDraggable()
2383            }
2384        },
2385        st = {
2386            setTransform: function(n, i) {
2387                var a = this.rtl,
2388                    f = t(n),
2389                    s = a ? -1 : 1,
2390                    h = f.attr("data-swiper-parallax") || "0",
2391                    r = f.attr("data-swiper-parallax-x"),
2392                    u = f.attr("data-swiper-parallax-y"),
2393                    e = f.attr("data-swiper-parallax-scale"),
2394                    o = f.attr("data-swiper-parallax-opacity"),
2395                    c, l;
2396                (r || u ? (r = r || "0", u = u || "0") : this.isHorizontal() ? (r = h, u = "0") : (u = h, r = "0"), r = 0 <= r.indexOf("%") ? parseInt(r, 10) * i * s + "%" : r * i * s + "px", u = 0 <= u.indexOf("%") ? parseInt(u, 10) * i + "%" : u * i + "px", null != o) && (c = o - (o - 1) * (1 - Math.abs(i)), f[0].style.opacity = c);
2397                null == e ? f.transform("translate3d(" + r + ", " + u + ", 0px)") : (l = e - (e - 1) * (1 - Math.abs(i)), f.transform("translate3d(" + r + ", " + u + ", 0px) scale(" + l + ")"))
2398            },
2399            setTranslate: function() {
2400                var n = this,
2401                    r = n.$el,
2402                    u = n.slides,
2403                    i = n.progress,
2404                    f = n.snapGrid;
2405                r.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(t, r) {
2406                    n.parallax.setTransform(r, i)
2407                });
2408                u.each(function(r, u) {
2409                    var e = u.progress;
2410                    1 < n.params.slidesPerGroup && "auto" !== n.params.slidesPerView && (e += Math.ceil(r / 2) - i * (f.length - 1));
2411                    e = Math.min(Math.max(e, -1), 1);
2412                    t(u).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(t, i) {
2413                        n.parallax.setTransform(i, e)
2414                    })
2415                })
2416            },
2417            setTransition: function(n) {
2418                void 0 === n && (n = this.params.speed);
2419                this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(i, r) {
2420                    var u = t(r),
2421                        f = parseInt(u.attr("data-swiper-parallax-duration"), 10) || n;
2422                    0 === n && (f = 0);
2423                    u.transition(f)
2424                })
2425            }
2426        },
2427        ht = {
2428            getDistanceBetweenTouches: function(n) {
2429                if (n.targetTouches.length < 2) return 1;
2430                var t = n.targetTouches[0].pageX,
2431                    i = n.targetTouches[0].pageY,
2432                    r = n.targetTouches[1].pageX,
2433                    u = n.targetTouches[1].pageY;
2434                return Math.sqrt(Math.pow(r - t, 2) + Math.pow(u - i, 2))
2435            },
2436            onGestureStart: function(n) {
2437                var u = this,
2438                    e = u.params.zoom,
2439                    f = u.zoom,
2440                    i = f.gesture;
2441                if (f.fakeGestureTouched = !1, f.fakeGestureMoved = !1, !r.gestures) {
2442                    if ("touchstart" !== n.type || "touchstart" === n.type && n.targetTouches.length < 2) return;
2443                    f.fakeGestureTouched = !0;
2444                    i.scaleStart = ht.getDistanceBetweenTouches(n)
2445                }
2446                i.$slideEl && i.$slideEl.length || (i.$slideEl = t(n.target).closest(".swiper-slide"), 0 === i.$slideEl.length && (i.$slideEl = u.slides.eq(u.activeIndex)), i.$imageEl = i.$slideEl.find("img, svg, canvas"), i.$imageWrapEl = i.$imageEl.parent("." + e.containerClass), i.maxRatio = i.$imageWrapEl.attr("data-swiper-zoom") || e.maxRatio, 0 !== i.$imageWrapEl.length) ? (i.$imageEl.transition(0), u.zoom.isScaling = !0) : i.$imageEl = void 0
2447            },
2448            onGestureChange: function(n) {
2449                var u = this.params.zoom,
2450                    t = this.zoom,
2451                    i = t.gesture;
2452                if (!r.gestures) {
2453                    if ("touchmove" !== n.type || "touchmove" === n.type && n.targetTouches.length < 2) return;
2454                    t.fakeGestureMoved = !0;
2455                    i.scaleMove = ht.getDistanceBetweenTouches(n)
2456                }
2457                i.$imageEl && 0 !== i.$imageEl.length && (t.scale = r.gestures ? n.scale * t.currentScale : i.scaleMove / i.scaleStart * t.currentScale, t.scale > i.maxRatio && (t.scale = i.maxRatio - 1 + Math.pow(t.scale - i.maxRatio + 1, .5)), t.scale < u.minRatio && (t.scale = u.minRatio + 1 - Math.pow(u.minRatio - t.scale + 1, .5)), i.$imageEl.transform("translate3d(0,0,0) scale(" + t.scale + ")"))
2458            },
2459            onGestureEnd: function(n) {
2460                var u = this.params.zoom,
2461                    t = this.zoom,
2462                    i = t.gesture;
2463                if (!r.gestures) {
2464                    if (!t.fakeGestureTouched || !t.fakeGestureMoved) return;
2465                    if ("touchend" !== n.type || "touchend" === n.type && n.changedTouches.length < 2 && !e.android) return;
2466                    t.fakeGestureTouched = !1;
2467                    t.fakeGestureMoved = !1
2468                }
2469                i.$imageEl && 0 !== i.$imageEl.length && (t.scale = Math.max(Math.min(t.scale, i.maxRatio), u.minRatio), i.$imageEl.transition(this.params.speed).transform("translate3d(0,0,0) scale(" + t.scale + ")"), t.currentScale = t.scale, t.isScaling = !1, 1 === t.scale && (i.$slideEl = void 0))
2470            },
2471            onTouchStart: function(n) {
2472                var i = this.zoom,
2473                    r = i.gesture,
2474                    t = i.image;
2475                r.$imageEl && 0 !== r.$imageEl.length && (t.isTouched || (e.android && n.preventDefault(), t.isTouched = !0, t.touchesStart.x = "touchstart" === n.type ? n.targetTouches[0].pageX : n.pageX, t.touchesStart.y = "touchstart" === n.type ? n.targetTouches[0].pageY : n.pageY))
2476            },
2477            onTouchMove: function(t) {
2478                var e = this,
2479                    f = e.zoom,
2480                    u = f.gesture,
2481                    i = f.image,
2482                    r = f.velocity,
2483                    o, s;
2484                if (u.$imageEl && 0 !== u.$imageEl.length && (e.allowClick = !1, i.isTouched && u.$slideEl) && (i.isMoved || (i.width = u.$imageEl[0].offsetWidth, i.height = u.$imageEl[0].offsetHeight, i.startX = n.getTranslate(u.$imageWrapEl[0], "x") || 0, i.startY = n.getTranslate(u.$imageWrapEl[0], "y") || 0, u.slideWidth = u.$slideEl[0].offsetWidth, u.slideHeight = u.$slideEl[0].offsetHeight, u.$imageWrapEl.transition(0), e.rtl && (i.startX = -i.startX, i.startY = -i.startY)), o = i.width * f.scale, s = i.height * f.scale, !(o < u.slideWidth && s < u.slideHeight))) {
2485                    if ((i.minX = Math.min(u.slideWidth / 2 - o / 2, 0), i.maxX = -i.minX, i.minY = Math.min(u.slideHeight / 2 - s / 2, 0), i.maxY = -i.minY, i.touchesCurrent.x = "touchmove" === t.type ? t.targetTouches[0].pageX : t.pageX, i.touchesCurrent.y = "touchmove" === t.type ? t.targetTouches[0].pageY : t.pageY, !i.isMoved && !f.isScaling) && (e.isHorizontal() && (Math.floor(i.minX) === Math.floor(i.startX) && i.touchesCurrent.x < i.touchesStart.x || Math.floor(i.maxX) === Math.floor(i.startX) && i.touchesCurrent.x > i.touchesStart.x) || !e.isHorizontal() && (Math.floor(i.minY) === Math.floor(i.startY) && i.touchesCurrent.y < i.touchesStart.y || Math.floor(i.maxY) === Math.floor(i.startY) && i.touchesCurrent.y > i.touchesStart.y))) return void(i.isTouched = !1);
2486                    t.preventDefault();
2487                    t.stopPropagation();
2488                    i.isMoved = !0;
2489                    i.currentX = i.touchesCurrent.x - i.touchesStart.x + i.startX;
2490                    i.currentY = i.touchesCurrent.y - i.touchesStart.y + i.startY;
2491                    i.currentX < i.minX && (i.currentX = i.minX + 1 - Math.pow(i.minX - i.currentX + 1, .8));
2492                    i.currentX > i.maxX && (i.currentX = i.maxX - 1 + Math.pow(i.currentX - i.maxX + 1, .8));
2493                    i.currentY < i.minY && (i.currentY = i.minY + 1 - Math.pow(i.minY - i.currentY + 1, .8));
2494                    i.currentY > i.maxY && (i.currentY = i.maxY - 1 + Math.pow(i.currentY - i.maxY + 1, .8));
2495                    r.prevPositionX || (r.prevPositionX = i.touchesCurrent.x);
2496                    r.prevPositionY || (r.prevPositionY = i.touchesCurrent.y);
2497                    r.prevTime || (r.prevTime = Date.now());
2498                    r.x = (i.touchesCurrent.x - r.prevPositionX) / (Date.now() - r.prevTime) / 2;
2499                    r.y = (i.touchesCurrent.y - r.prevPositionY) / (Date.now() - r.prevTime) / 2;
2500                    Math.abs(i.touchesCurrent.x - r.prevPositionX) < 2 && (r.x = 0);
2501                    Math.abs(i.touchesCurrent.y - r.prevPositionY) < 2 && (r.y = 0);
2502                    r.prevPositionX = i.touchesCurrent.x;
2503                    r.prevPositionY = i.touchesCurrent.y;
2504                    r.prevTime = Date.now();
2505                    u.$imageWrapEl.transform("translate3d(" + i.currentX + "px, " + i.currentY + "px,0
2505)")
2506                }
2507            },
2508            onTouchEnd: function() {
2509                var i = this.zoom,
2510                    r = i.gesture,
2511                    n = i.image,
2512                    t = i.velocity,
2513                    s, h, c;
2514                if (r.$imageEl && 0 !== r.$imageEl.length) {
2515                    if (!n.isTouched || !n.isMoved) return n.isTouched = !1, void(n.isMoved = !1);
2516                    n.isTouched = !1;
2517                    n.isMoved = !1;
2518                    var u = 300,
2519                        f = 300,
2520                        l = t.x * u,
2521                        e = n.currentX + l,
2522                        a = t.y * f,
2523                        o = n.currentY + a;
2524                    0 !== t.x && (u = Math.abs((e - n.currentX) / t.x));
2525                    0 !== t.y && (f = Math.abs((o - n.currentY) / t.y));
2526                    s = Math.max(u, f);
2527                    n.currentX = e;
2528                    n.currentY = o;
2529                    h = n.width * i.scale;
2530                    c = n.height * i.scale;
2531                    n.minX = Math.min(r.slideWidth / 2 - h / 2, 0);
2532                    n.maxX = -n.minX;
2533                    n.minY = Math.min(r.slideHeight / 2 - c / 2, 0);
2534                    n.maxY = -n.minY;
2535                    n.currentX = Math.max(Math.min(n.currentX, n.maxX), n.minX);
2536                    n.currentY = Math.max(Math.min(n.currentY, n.maxY), n.minY);
2537                    r.$imageWrapEl.transition(s).transform("translate3d(" + n.currentX + "px, " + n.currentY + "px,0)")
2538                }
2539            },
2540            onTransitionEnd: function() {
2541                var t = this.zoom,
2542                    n = t.gesture;
2543                n.$slideEl && this.previousIndex !== this.activeIndex && (n.$imageEl.transform("translate3d(0,0,0) scale(1)"), n.$imageWrapEl.transform("translate3d(0,0,0)"), t.scale = 1, t.currentScale = 1, n.$slideEl = void 0, n.$imageEl = void 0, n.$imageWrapEl = void 0)
2544            },
2545            toggle: function(n) {
2546                var t = this.zoom;
2547                t.scale && 1 !== t.scale ? t.out() : t.in(n)
2548            },
2549            "in": function(n) {
2550                var s, h, b, k, u, f, d, g, nt, tt, c, l, a, v, y, p, e = this,
2551                    r = e.zoom,
2552                    o = e.params.zoom,
2553                    i = r.gesture,
2554                    w = r.image;
2555                (i.$slideEl || (i.$slideEl = e.clickedSlide ? t(e.clickedSlide) : e.slides.eq(e.activeIndex), i.$imageEl = i.$slideEl.find("img, svg, canvas"), i.$imageWrapEl = i.$imageEl.parent("." + o.containerClass)), i.$imageEl && 0 !== i.$imageEl.length) && (i.$slideEl.addClass("" + o.zoomedSlideClass), void 0 === w.touchesStart.x && n ? (s = "touchend" === n.type ? n.changedTouches[0].pageX : n.pageX, h = "touchend" === n.type ? n.changedTouches[0].pageY : n.pageY) : (s = w.touchesStart.x, h = w.touchesStart.y), r.scale = i.$imageWrapEl.attr("data-swiper-zoom") || o.maxRatio, r.currentScale = i.$imageWrapEl.attr("data-swiper-zoom") || o.maxRatio, n ? (y = i.$slideEl[0].offsetWidth, p = i.$slideEl[0].offsetHeight, b = i.$slideEl.offset().left + y / 2 - s, k = i.$slideEl.offset().top + p / 2 - h, d = i.$imageEl[0].offsetWidth, g = i.$imageEl[0].offsetHeight, nt = d * r.scale, tt = g * r.scale, a = -(c = Math.min(y / 2 - nt / 2, 0)), v = -(l = Math.min(p / 2 - tt / 2, 0)), (u = b * r.scale) < c && (u = c), a < u && (u = a), (f = k * r.scale) < l && (f = l), v < f && (f = v)) : f = u = 0, i.$imageWrapEl.transition(300).transform("translate3d(" + u + "px, " + f + "px,0)"), i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(" + r.scale + ")"))
2556            },
2557            out: function() {
2558                var i = this,
2559                    r = i.zoom,
2560                    u = i.params.zoom,
2561                    n = r.gesture;
2562                n.$slideEl || (n.$slideEl = i.clickedSlide ? t(i.clickedSlide) : i.slides.eq(i.activeIndex), n.$imageEl = n.$slideEl.find("img, svg, canvas"), n.$imageWrapEl = n.$imageEl.parent("." + u.containerClass));
2563                n.$imageEl && 0 !== n.$imageEl.length && (r.scale = 1, r.currentScale = 1, n.$imageWrapEl.transition(300).transform("translate3d(0,
25630,0)"), n.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"), n.$slideEl.removeClass("" + u.zoomedSlideClass), n.$slideEl = void 0)
2564            },
2565            enable: function() {
2566                var n = this,
2567                    t = n.zoom,
2568                    i;
2569                t.enabled || (t.enabled = !0, i = !("touchstart" !== n.touchEvents.start || !r.passiveListener || !n.params.passiveListeners) && {
2570                    passive: !0,
2571                    capture: !1
2572                }, r.gestures ? (n.$wrapperEl.on("gesturestart", ".swiper-slide", t.onGestureStart, i), n.$wrapperEl.on("gesturechange", ".swiper-slide", t.onGestureChange, i), n.$wrapperEl.on("gestureend", ".swiper-slide", t.onGestureEnd, i)) : "touchstart" === n.touchEvents.start && (n.$wrapperEl.on(n.touchEvents.start, ".swiper-slide", t.onGestureStart, i), n.$wrapperEl.on(n.touchEvents.move, ".swiper-slide", t.onGestureChange, i), n.$wrapperEl.on(n.touchEvents.end, ".swiper-slide", t.onGestureEnd, i)), n.$wrapperEl.on(n.touchEvents.move, "." + n.params.zoom.containerClass, t.onTouchMove))
2573            },
2574            disable: function() {
2575                var n = this,
2576                    t = n.zoom,
2577                    i;
2578                t.enabled && (n.zoom.enabled = !1, i = !("touchstart" !== n.touchEvents.start || !r.passiveListener || !n.params.passiveListeners) && {
2579                    passive: !0,
2580                    capture: !1
2581                }, r.gestures ? (n.$wrapperEl.off("gesturestart", ".swiper-slide", t.onGestureStart, i), n.$wrapperEl.off("gesturechange", ".swiper-slide", t.onGestureChange, i), n.$wrapperEl.off("gestureend", ".swiper-slide", t.onGestureEnd, i)) : "touchstart" === n.touchEvents.start && (n.$wrapperEl.off(n.touchEvents.start, ".swiper-slide", t.onGestureStart, i), n.$wrapperEl.off(n.touchEvents.move, ".swiper-slide", t.onGestureChange, i), n.$wrapperEl.off(n.touchEvents.end, ".swiper-slide", t.onGestureEnd, i)), n.$wrapperEl.off(n.touchEvents.move, "." + n.params.zoom.containerClass, t.onTouchMove))
2582            }
2583        },
2584        yt = {
2585            loadInSlide: function(n, i) {
2586                var r, u, f, e;
2587                void 0 === i && (i = !0);
2588                r = this;
2589                u = r.params.lazy;
2590                void 0 !== n && 0 !== r.slides.length && (f = r.virtual && r.params.virtual.enabled ? r.$wrapperEl.children("." + r.params.slideClass + '[data-swiper-slide-index="' + n + '"]') : r.slides.eq(n), e = f.find("." + u.elementClass + ":not(." + u.loadedClass + "):not(." + u.loadingClass + ")"), !f.hasClass(u.elementClass) || f.hasClass(u.loadedClass) || f.hasClass(u.loadingClass) || (e = e.add(f[0])), 0 !== e.length && e.each(function(n, e) {
2591                    var o = t(e);
2592                    o.addClass(u.loadingClass);
2593                    var s = o.attr("data-background"),
2594                        h = o.attr("data-src"),
2595                        c = o.attr("data-srcset"),
2596                        l = o.attr("data-sizes");
2597                    r.loadImage(o[0], h || s, c, l, !1, function() {
2598                        var n, t, e;
2599                        null != r && r && (!r || r.params) && !r.destroyed && ((s ? (o.css("background-image", 'url("' + s + '")'), o.removeAttr("data-background")) : (c && (o.attr("srcset", c), o.removeAttr("data-srcset")), l && (o.attr("sizes", l), o.removeAttr("data-sizes")), h && (o.attr("src", h), o.removeAttr("data-src"))), o.addClass(u.loadedClass).removeClass(u.loadingClass), f.find("." + u.preloaderClass).remove(), r.params.loop && i) && (n = f.attr("data-swiper-slide-index"), f.hasClass(r.params.slideDuplicateClass) ? (t = r.$wrapperEl.children('[data-swiper-slide-index="' + n + '"]:not(.' + r.params.slideDuplicateClass + ")"), r.lazy.loadInSlide(t.index(), !1)) : (e = r.$wrapperEl.children("." + r.params.slideDuplicateClass + '[data-swiper-slide-index="' + n + '"]'), r.lazy.loadInSlide(e.index(), !1))), r.emit("lazyImageReady", f[0], o[0]))
2600                    });
2601                    r.emit("lazyImageLoad", f[0], o[0])
2602                }))
2603            },
2604            load: function() {
2605                function l(n) {
2606                    if (c) {
2607                        if (o.children("." + i.slideClass + '[data-swiper-slide-index="' + n + '"]').length) return !0
2608                    } else if (p[n]) return !0;
2609                    return !1
2610                }
2611
2612                function w(n) {
2613                    return c ? t(n).attr("data-swiper-slide-index") : t(n).index()
2614                }
2615                var n = this,
2616                    o = n.$wrapperEl,
2617                    i = n.params,
2618                    p = n.slides,
2619                    r = n.activeIndex,
2620                    c = n.virtual && i.virtual.enabled,
2621                    s = i.lazy,
2622                    u = i.slidesPerView,
2623                    f, e, v, y;
2624                if ("auto" === u && (u = 0), n.lazy.initialImageLoaded || (n.lazy.initialImageLoaded = !0), n.params.watchSlidesVisibility) o.children("." + i.slideVisibleClass).each(function(i, r) {
2625                    var u = c ? t(r).attr("data-swiper-slide-index") : t(r).index();
2626                    n.lazy.loadInSlide(u)
2627                });
2628                else if (1 < u)
2629                    for (f = r; f < r + u; f += 1) l(f) && n.lazy.loadInSlide(f);
2630                else n.lazy.loadInSlide(r);
2631                if (s.loadPrevNext)
2632                    if (1 < u || s.loadPrevNextAmount && 1 < s.loadPrevNextAmount) {
2633                        for (var b = s.loadPrevNextAmount, a = u, k = Math.min(r + a + Math.max(b, a), p.length), d = Math.max(r - Math.max(a, b), 0), h = r + u; h < k; h += 1) l(h) && n.lazy.loadInSlide(h);
2634                        for (e = d; e < r; e += 1) l(e) && n.lazy.loadInSlide(e)
2635                    } else v = o.children("." + i.slideNextClass), 0 < v.length && n.lazy.loadInSlide(w(v)), y = o.children("." + i.slidePrevClass), 0 < y.length && n.lazy.loadInSlide(w(y))
2636            }
2637        },
2638        p = {
2639            LinearSpline: function(n, t) {
2640                var i, u, e, r, f, o = function(n, t) {
2641                    for (u = -1, i = n.length; 1 < i - u;) n[e = i + u >> 1] <= t ? u = e : i = e;
2642                    return i
2643                };
2644                return this.x = n, this.y = t, this.lastIndex = n.length - 1, this.interpolate = function(n) {
2645                    return n ? (f = o(this.x, n), r = f - 1, (n - this.x[r]) * (this.y[f] - this.y[r]) / (this.x[f] - this.x[r]) + this.y[r]) : 0
2646                }, this
2647            },
2648            getInterpolateFunction: function(n) {
2649                var t = this;
2650                t.controller.spline || (t.controller.spline = t.params.loop ? new p.LinearSpline(t.slidesGrid, n.slidesGrid) : new p.LinearSpline(t.snapGrid, n.snapGrid))
2651            },
2652            setTranslate: function(n, t) {
2653                function s(n) {
2654                    var t = i.rtlTranslate ? -i.translate : i.translate;
2655                    "slide" === i.params.controller.by && (i.controller.getInterpolateFunction(n), u = -i.controller.spline.interpolate(-t));
2656                    u && "container" !== i.params.controller.by || (e = (n.maxTranslate() - n.minTranslate()) / (i.maxTranslate() - i.minTranslate()), u = (t - i.minTranslate()) * e + n.minTranslate());
2657                    i.params.controller.inverse && (u = n.maxTranslate() - u);
2658                    n.updateProgress(u);
2659                    n.setTranslate(u, i);
2660                    n.updateActiveIndex();
2661                    n.updateSlidesClasses()
2662                }
2663                var e, u, i = this,
2664                    r = i.controller.control,
2665                    f;
2666                if (Array.isArray(r))
2667                    for (f = 0; f < r.length; f += 1) r[f] !== t && r[f] instanceof o && s(r[f]);
2668                else r instanceof o && t !== r && s(r)
2669            },
2670            setTransition: function(t, i) {
2671                function e(i) {
2672                    i.setTransition(t, f);
2673                    0 !== t && (i.transitionStart(), i.params.autoHeight && n.nextTick(function() {
2674                        i.updateAutoHeight()
2675                    }), i.$wrapperEl.transitionEnd(function() {
2676                        r && (i.params.loop && "slide" === f.params.controller.by && i.loopFix(), i.transitionEnd())
2677                    }))
2678                }
2679                var u, f = this,
2680                    r = f.controller.control;
2681                if (Array.isArray(r))
2682                    for (u = 0; u < r.length; u += 1) r[u] !== i && r[u] instanceof o && e(r[u]);
2683                else r instanceof o && i !== r && e(r)
2684            }
2685        },
2686        pt = {
2687            makeElFocusable: function(n) {
2688                return n.attr("tabIndex", "0"), n
2689            },
2690            addElRole: function(n, t) {
2691                return n.attr("role", t), n
2692            },
2693            addElLabel: function(n, t) {
2694                return n.attr("aria-label", t), n
2695            },
2696            disableEl: function(n) {
2697                return n.attr("aria-disabled", !0), n
2698            },
2699            enableEl: function(n) {
2700                return n.attr("aria-disabled", !1), n
2701            },
2702            onEnterKey: function(n) {
2703                var i = this,
2704                    u = i.params.a11y,
2705                    r;
2706                13 === n.keyCode && (r = t(n.target), i.navigation && i.navigation.$nextEl && r.is(i.navigation.$nextEl) && (i.isEnd && !i.params.loop || i.slideNext(), i.isEnd ? i.a11y.notify(u.lastSlideMessage) : i.a11y.notify(u.nextSlideMessage)), i.navigation && i.navigation.$prevEl && r.is(i.navigation.$prevEl) && (i.isBeginning && !i.params.loop || i.slidePrev(), i.isBeginning ? i.a11y.notify(u.firstSlideMessage) : i.a11y.notify(u.prevSlideMessage)), i.pagination && r.is("." + i.params.pagination.bulletClass) && r[0].click())
2707            },
2708            notify: function(n) {
2709                var t = this.a11y.liveRegion;
2710                0 !== t.length && (t.html(""), t.html(n))
2711            },
2712            updateNavigation: function() {
2713                var n = this;
2714                if (!n.params.loop) {
2715                    var r = n.navigation,
2716                        t = r.$nextEl,
2717                        i = r.$prevEl;
2718                    i && 0 < i.length && (n.isBeginning ? n.a11y.disableEl(i) : n.a11y.enableEl(i));
2719                    t && 0 < t.length && (n.isEnd ? n.a11y.disableEl(t) : n.a11y.enableEl(t))
2720                }
2721            },
2722            updatePagination: function() {
2723                var n = this,
2724                    i = n.params.a11y;
2725                n.pagination && n.params.pagination.clickable && n.pagination.bullets && n.pagination.bullets.length && n.pagination.bullets.each(function(r, u) {
2726                    var f = t(u);
2727                    n.a11y.makeElFocusable(f);
2728                    n.a11y.addElRole(f, "button");
2729                    n.a11y.addElLabel(f, i.paginationBulletMessage.replace(/{{index}}/, f.index() + 1))
2730                })
2731            },
2732            init: function() {
2733                var n = this,
2734                    t, i, r;
2735                n.$el.append(n.a11y.liveRegion);
2736                r = n.params.a11y;
2737                n.navigation && n.navigation.$nextEl && (t = n.navigation.$nextEl);
2738                n.navigation && n.navigation.$prevEl && (i = n.navigation.$prevEl);
2739                t && (n.a11y.makeElFocusable(t), n.a11y.addElRole(t, "button"), n.a11y.addElLabel(t, r.nextSlideMessage), t.on("keydown", n.a11y.onEnterKey));
2740                i && (n.a11y.makeElFocusable(i), n.a11y.addElRole(i, "button"), n.a11y.addElLabel(i, r.prevSlideMessage), i.on("keydown", n.a11y.onEnterKey));
2741                n.pagination && n.params.pagination.clickable && n.pagination.bullets && n.pagination.bullets.length && n.pagination.$el.on("keydown", "." + n.params.pagination.bulletClass, n.a11y.onEnterKey)
2742            },
2743            destroy: function() {
2744                var t, i, n = this;
2745                n.a11y.liveRegion && 0 < n.a11y.liveRegion.length && n.a11y.liveRegion.remove();
2746                n.navigation && n.navigation.$nextEl && (t = n.navigation.$nextEl);
2747                n.navigation && n.navigation.$prevEl && (i = n.navigation.$prevEl);
2748                t && t.off("keydown", n.a11y.onEnterKey);
2749                i && i.off("keydown", n.a11y.onEnterKey);
2750                n.pagination && n.params.pagination.clickable && n.pagination.bullets && n.pagination.bullets.length && n.pagination.$el.off("keydown", "." + n.params.pagination.bulletClass, n.a11y.onEnterKey)
2751            }
2752        },
2753        l = {
2754            init: function() {
2755                var n = this,
2756                    t;
2757                if (n.params.history) {
2758                    if (!i.history || !i.history.pushState) return n.params.history.enabled = !1, void(n.params.hashNavigation.enabled = !0);
2759                    t = n.history;
2760                    t.initialized = !0;
2761                    t.paths = l.getPathValues();
2762                    (t.paths.key || t.paths.value) && (t.scrollToSlide(0, t.paths.value, n.params.runCallbacksOnInit), n.params.history.replaceState || i.addEventListener("popstate", n.history.setHistoryPopState))
2763                }
2764            },
2765            destroy: function() {
2766                this.params.history.replaceState || i.removeEventListener("popstate", this.history.setHistoryPopState)
2767            },
2768            setHistoryPopState: function() {
2769                this.history.paths = l.getPathValues();
2770                this.history.scrollToSlide(this.params.speed, this.history.paths.value, !1)
2771            },
2772            getPathValues: function() {
2773                var n = i.location.pathname.slice(1).split("/").filter(function(n) {
2774                        return "" !== n
2775                    }),
2776                    t = n.length;
2777                return {
2778                    key: n[t - 2],
2779                    value: n[t - 1]
2780                }
2781            },
2782            setHistory: function(n, t) {
2783                var f, r, u;
2784                this.history.initialized && this.params.history.enabled && (f = this.slides.eq(t), r = l.slugify(f.attr("data-history")), i.location.pathname.includes(n) || (r = n + "/" + r), u = i.history.state, u && u.value === r || (this.params.history.replaceState ? i.history.replaceState({
2785                    value: r
2786                }, null, r) : i.history.pushState({
2787                    value: r
2788                }, null, r)))
2789            },
2790            slugify: function(n) {
2791                return n.toString().toLowerCase().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-").replace(/^-+/, "").replace(/-+$/, "")
2792            },
2793            scrollToSlide: function(n, t, i) {
2794                var r = this,
2795                    u, e, f, o;
2796                if (t)
2797                    for (u = 0, e = r.slides.length; u < e; u += 1) f = r.slides.eq(u), l.slugify(f.attr("data-history")) !== t || f.hasClass(r.params.slideDuplicateClass) || (o = f.index(), r.slideTo(o, n, i));
2798                else r.slideTo(0, n, i)
2799            }
2800        },
2801        tt = {
2802            onHashCange: function() {
2803                var n = this,
2804                    i = u.location.hash.replace("#", ""),
2805                    t;
2806                if (i !== n.slides.eq(n.activeIndex).attr("data-hash")) {
2807                    if (t = n.$wrapperEl.children("." + n.params.slideClass + '[data-hash="' + i + '"]').index(), void 0 === t) return;
2808                    n.slideTo(t)
2809                }
2810            },
2811            setHash: function() {
2812                var n = this,
2813                    t, r;
2814                n.hashNavigation.initialized && n.params.hashNavigation.enabled && (n.params.hashNavigation.replaceState && i.history && i.history.replaceState ? i.history.replaceState(null, null, "#" + n.slides.eq(n.activeIndex).attr("data-hash") || "") : (t = n.slides.eq(n.activeIndex), r = t.attr("data-hash") || t.attr("data-history"), u.location.hash = r || ""))
2815            },
2816            init: function() {
2817                var n = this,
2818                    e, f, o, r, s;
2819                if (!(!n.params.hashNavigation.enabled || n.params.history && n.params.history.enabled)) {
2820                    if (n.hashNavigation.initialized = !0, e = u.location.hash.replace("#", ""), e)
2821                        for (f = 0, o = n.slides.length; f < o; f += 1) r = n.slides.eq(f), (r.attr("data-hash") || r.attr("data-history")) !== e || r.hasClass(n.params.slideDuplicateClass) || (s = r.index(), n.slideTo(s, 0, n.params.runCallbacksOnInit, !0));
2822                    n.params.hashNavigation.watchState && t(i).on("hashchange", n.hashNavigation.onHashCange)
2823                }
2824            },
2825            destroy: function() {
2826                this.params.hashNavigation.watchState && t(i).off("hashchange", this.hashNavigation.onHashCange)
2827            }
2828        },
2829        it = {
2830            run: function() {
2831                var t = this,
2832                    i = t.slides.eq(t.activeIndex),
2833                    r = t.params.autoplay.delay;
2834                i.attr("data-swiper-autoplay") && (r = i.attr("data-swiper-autoplay") || t.params.autoplay.delay);
2835                t.autoplay.timeout = n.nextTick(function() {
2836                    t.params.autoplay.reverseDirection ? t.params.loop ? (t.loopFix(), t.slidePrev(t.params.speed, !0, !0), t.emit("autoplay")) : t.isBeginning ? t.params.autoplay.stopOnLastSlide ? t.autoplay.stop() : (t.slideTo(t.slides.length - 1, t.params.speed, !0, !0), t.emit("autoplay")) : (t.slidePrev(t.params.speed, !0, !0), t.emit("autoplay")) : t.params.loop ? (t.loopFix(), t.slideNext(t.params.speed, !0, !0), t.emit("autoplay")) : t.isEnd ? t.params.autoplay.stopOnLastSlide ? t.autoplay.stop() : (t.slideTo(0, t.params.speed, !0, !0), t.emit("autoplay")) : (t.slideNext(t.params.speed, !0, !0), t.emit("autoplay"))
2837                }, r)
2838            },
2839            start: function() {
2840                var n = this;
2841                return void 0 === n.autoplay.timeout && !n.autoplay.running && (n.autoplay.running = !0, n.emit("autoplayStart"), n.autoplay.run(), !0)
2842            },
2843            stop: function() {
2844                var n = this;
2845                return !!n.autoplay.running && void 0 !== n.autoplay.timeout && (n.autoplay.timeout && (clearTimeout(n.autoplay.timeout), n.autoplay.timeout = void 0), n.autoplay.running = !1, n.emit("autoplayStop"), !0)
2846            },
2847            pause: function(n) {
2848                var t = this;
2849                t.autoplay.running && (t.autoplay.paused || (t.autoplay.timeout && clearTimeout(t.autoplay.timeout), t.autoplay.paused = !0, 0 !== n && t.params.autoplay.waitForTransition ? (t.$wrapperEl[0].addEventListener("transitionend", t.autoplay.onTransitionEnd), t.$wrapperEl[0].addEventListener("webkitTransitionEnd", t.autoplay.onTransitionEnd)) : (t.autoplay.paused = !1, t.autoplay.run())))
2850            }
2851        },
2852        wt = {
2853            setTranslate: function() {
2854                for (var t, i, u, f, n = this, e = n.slides, r = 0; r < e.length; r += 1) t = n.slides.eq(r), i = -t[0].swiperSlideOffset, n.params.virtualTranslate || (i -= n.translate), u = 0, n.isHorizontal() || (u = i, i = 0), f = n.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(t[0].progress), 0) : 1 + Math.min(Math.max(t[0].progress, -1), 0), t.css({
2855                    opacity: f
2856                }).transform("translate3d(" + i + "px, " + u + "px, 0px)")
2857            },
2858            setTransition: function(n) {
2859                var t = this,
2860                    r = t.slides,
2861                    u = t.$wrapperEl,
2862                    i;
2863                (r.transition(n), t.params.virtualTranslate && 0 !== n) && (i = !1, r.transitionEnd(function() {
2864                    if (!i && t && !t.destroyed) {
2865                        i = !0;
2866                        t.animating = !1;
2867                        for (var r = ["webkitTransitionEnd", "transitionend"], n = 0; n < r.length; n += 1) u.trigger(r[n])
2868                    }
2869                }))
2870            }
2871        },
2872        bt = {
2873            setTranslate: function() {
2874                var u, n = this,
2875                    nt = n.$el,
2876                    k = n.$wrapperEl,
2877                    tt = n.slides,
2878                    d = n.width,
2879                    it = n.height,
2880                    g = n.rtlTranslate,
2881                    i = n.size,
2882                    s = n.params.cubeEffect,
2883                    f = n.isHorizontal(),
2884                    st = n.virtual && n.params.virtual.enabled,
2885                    c = 0,
2886                    w, r, e, h, l, ut, y, p, ot;
2887                for (s.shadow && (f ? (0 === (u = k.find(".swiper-cube-shadow")).length && (u = t('<
2887div class="swiper-cube-shadow"><\/div>'), k.append(u)), u.css({
2888                        height: d + "px"
2889                    })) : 0 === (u = nt.find(".swiper-cube-shadow")).length && (u = t('<div class="swiper-cube-shadow"><\/div>'), nt.append(u))), w = 0; w < tt.length; w += 1) {
2890                    r = tt.eq(w);
2891                    e = w;
2892                    st && (e = parseInt(r.attr("data-swiper-slide-index"), 10));
2893                    h = 90 * e;
2894                    l = Math.floor(h / 360);
2895                    g && (h = -h, l = Math.floor(-h / 360));
2896                    var a = Math.max(Math.min(r[0].progress, 1), -1),
2897                        o = 0,
2898                        rt = 0,
2899                        b = 0;
2900                    e % 4 == 0 ? (o = 4 * -l * i, b = 0) : (e - 1) % 4 == 0 ? (o = 0, b = 4 * -l * i) : (e - 2) % 4 == 0 ? (o = i + 4 * l * i, b = i) : (e - 3) % 4 == 0 && (o = -i, b = 3 * i + 4 * i * l);
2901                    g && (o = -o);
2902                    f || (rt = o, o = 0);
2903                    ut = "rotateX(" + (f ? 0 : -h) + "deg) rotateY(" + (f ? h : 0) + "deg) translate3d(" + o + "px, " + rt + "px, " + b + "px)";
2904                    (a <= 1 && -1 < a && (c = 90 * e + 90 * a, g && (c = 90 * -e - 90 * a)), r.transform(ut), s.slideShadows) && (y = f ? r.find(".swiper-slide-shadow-left") : r.find(".swiper-slide-shadow-top"), p = f ? r.find(".swiper-slide-shadow-right") : r.find(".swiper-slide-shadow-bottom"), 0 === y.length && (y = t('<div class="swiper-slide-shadow-' + (f ? "left" : "top") + '"><\/div>'), r.append(y)), 0 === p.length && (p = t('<div class="swiper-slide-shadow-' + (f ? "right" : "bottom") + '"><\/div>'), r.append(p)), y.length && (y[0].style.opacity = Math.max(-a, 0)), p.length && (p[0].style.opacity = Math.max(a, 0)))
2905                }
2906                if (k.css({
2907                        "-webkit-transform-origin": "50% 50% -" + i / 2 + "px",
2908                        "-moz-transform-origin": "50% 50% -" + i / 2 + "px",
2909                        "-ms-transform-origin": "50% 50% -" + i / 2 + "px",
2910                        "transform-origin": "50% 50% -" + i / 2 + "px"
2911                    }), s.shadow)
2912                    if (f) u.transform("translate3d(0px, " + (d / 2 + s.shadowOffset) + "px, " + -d / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + s.shadowScale + ")");
2913                    else {
2914                        var ft = Math.abs(c) - 90 * Math.floor(Math.abs(c) / 90),
2915                            ht = 1.5 - (Math.sin(2 * ft * Math.PI / 360) / 2 + Math.cos(2 * ft * Math.PI / 360) / 2),
2916                            ct = s.shadowScale,
2917                            et = s.shadowScale / ht,
2918                            lt = s.shadowOffset;
2919                        u.transform("scale3d(" + ct + ", 1, " + et + ") translate3d(0px, " + (it / 2 + lt) + "px, " + -it / 2 / et + "px) rotateX(-90deg)")
2920                    }
2921                ot = v.isSafari || v.isUiWebView ? -i / 2 : 0;
2922                k.transform("translate3d(0px,0," + ot + "px) rotateX(" + (n.isHorizontal() ? 0 : c) + "deg) rotateY(" + (n.isHorizontal() ? -c : 0) + "deg)")
2923            },
2924            setTransition: function(n) {
2925                var t = this.$el;
2926                this.slides.transition(n).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(n);
2927                this.params.cubeEffect.shadow && !this.isHorizontal() && t.find(".swiper-cube-shadow").transition(n)
2928            }
2929        },
2930        kt = {
2931            setTranslate: function() {
2932                for (var n, r, u, f, i = this, o = i.slides, a = i.rtlTranslate, s = 0; s < o.length; s += 1) {
2933                    n = o.eq(s);
2934                    r = n[0].progress;
2935                    i.params.flipEffect.limitRotation && (r = Math.max(Math.min(n[0].progress, 1), -1));
2936                    var e = -180 * r,
2937                        c = 0,
2938                        h = -n[0].swiperSlideOffset,
2939                        l = 0;
2940                    (i.isHorizontal() ? a && (e = -e) : (l = h, c = -e, e = h = 0), n[0].style.zIndex = -Math.abs(Math.round(r)) + o.length, i.params.flipEffect.slideShadows) && (u = i.isHorizontal() ? n.find(".swiper-slide-shadow-left") : n.find(".swiper-slide-shadow-top"), f = i.isHorizontal() ? n.find(".swiper-slide-shadow-right") : n.find(".swiper-slide-shadow-bottom"), 0 === u.length && (u = t('<
2940div class="swiper-slide-shadow-' + (i.isHorizontal() ? "left" : "top") + '"><\/div>'), n.append(u)), 0 === f.length && (f = t('<div class="swiper-slide-shadow-' + (i.isHorizontal() ? "right" : "bottom") + '"><\/div>'), n.append(f)), u.length && (u[0].style.opacity = Math.max(-r, 0)), f.length && (f[0].style.opacity = Math.max(r, 0)));
2941                    n.transform("translate3d(" + h + "px, " + l + "px, 0px) rotateX(" + c + "deg) rotateY(" + e + "deg)")
2942                }
2943            },
2944            setTransition: function(n) {
2945                var t = this,
2946                    r = t.slides,
2947                    u = t.activeIndex,
2948                    f = t.$wrapperEl,
2949                    i;
2950                (r.transition(n).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(n), t.params.virtualTranslate && 0 !== n) && (i = !1, r.eq(u).transitionEnd(function() {
2951                    if (!i && t && !t.destroyed) {
2952                        i = !0;
2953                        t.animating = !1;
2954                        for (var r = ["webkitTransitionEnd", "transitionend"], n = 0; n < r.length; n += 1) f.trigger(r[n])
2955                    }
2956                }))
2957            }
2958        },
2959        dt = {
2960            setTranslate: function() {
2961                for (var g, o, s, f = this, nt = f.width, tt = f.height, p = f.slides, it = f.$wrapperEl, rt = f.slidesSizesGrid, e = f.params.coverflowEffect, n = f.isHorizontal(), w = f.translate, b = n ? nt / 2 - w : tt / 2 - w, k = n ? e.rotate : -e.rotate, ut = e.depth, h = 0, ft = p.length; h < ft; h += 1) {
2962                    var u = p.eq(h),
2963                        d = rt[h],
2964                        i = (b - u[0].swiperSlideOffset - d / 2) / d * e.modifier,
2965                        c = n ? k * i : 0,
2966                        l = n ? 0 : k * i,
2967                        a = -ut * Math.abs(i),
2968                        v = n ? 0 : e.stretch * i,
2969                        y = n ? e.stretch * i : 0;
2970                    Math.abs(y) < .001 && (y = 0);
2971                    Math.abs(v) < .001 && (v = 0);
2972                    Math.abs(a) < .001 && (a = 0);
2973                    Math.abs(c) < .001 && (c = 0);
2974                    Math.abs(l) < .001 && (l = 0);
2975                    g = "translate3d(" + y + "px," + v + "px," + a + "px)  rotateX(" + l + "deg) rotateY(" + c + "deg)";
2976                    (u.transform(g), u[0].style.zIndex = 1 - Math.abs(Math.round(i)), e.slideShadows) && (o = n ? u.find(".swiper-slide-shadow-left") : u.find(".swiper-slide-shadow-top"), s = n ? u.find(".swiper-slide-shadow-right") : u.find(".swiper-slide-shadow-bottom"), 0 === o.length && (o = t('<div class="swiper-slide-shadow-' + (n ? "left" : "top") + '"><\/div>'), u.append(o)), 0 === s.length && (s = t('<div class="swiper-slide-shadow-' + (n ? "right" : "bottom") + '"><\/div>'), u.append(s)), o.length && (o[0].style.opacity = 0 < i ? i : 0), s.length && (s[0].style.opacity = 0 < -i ? -i : 0))
2977                }(r.pointerEvents || r.prefixedPointerEvents) && (it[0].style.perspectiveOrigin = b + "px 50%")
2978            },
2979            setTransition: function(n) {
2980                this.slides.transition(n).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(n)
2981            }
2982        },
2983        ct = {
2984            init: function() {
2985                var t = this,
2986                    i = t.params.thumbs,
2987                    r = t.constructor;
2988                i.swiper instanceof r ? (t.thumbs.swiper = i.swiper, n.extend(t.thumbs.swiper.originalParams, {
2989                    watchSlidesProgress: !0,
2990                    slideToClickedSlide: !1
2991                }), n.extend(t.thumbs.swiper.params, {
2992                    watchSlidesProgress: !0,
2993                    slideToClickedSlide: !1
2994                })) : n.isObject(i.swiper) && (t.thumbs.swiper = new r(n.extend({}, i.swiper, {
2995                    watchSlidesVisibility: !0,
2996                    watchSlidesProgress: !0,
2997                    slideToClickedSlide: !1
2998                })), t.thumbs.swiperCreated = !0);
2999                t.thumbs.swiper.$el.addClass(t.params.thumbs.thumbsContainerClass);
3000                t.thumbs.swiper.on("tap", t.thumbs.onThumbClick)
3001            },
3002            onThumbClick: function() {
3003                var n = this,
3004                    r = n.thumbs.swiper,
3005                    o, s, u, i, f, e;
3006                r && (o = r.clickedIndex, s = r.clickedSlide, s && t(s).hasClass(n.params.thumbs.slideThumbActiveClass) || null == o || ((u = r.params.loop ? parseInt(t(r.clickedSlide).attr("data-swiper-slide-index"), 10) : o, n.params.loop) && (i = n.activeIndex, n.slides.eq(i).hasClass(n.params.slideDuplicateClass) && (n.loopFix(), n._clientLeft = n.$wrapperEl[0].clientLeft, i = n.activeIndex), f = n.slides.eq(i).prevAll('[data-swiper-slide-index="' + u + '"]').eq(0).index(), e = n.slides.eq(i).nextAll('[data-swiper-slide-index="' + u + '"]').eq(0).index(), u = void 0 === f ? e : void 0 === e ? f : e - i < i - f ? e : f), n.slideTo(u)))
3007            },
3008            update: function(n) {
3009                var r = this,
3010                    t = r.thumbs.swiper,
3011                    o, u, i, f, e, s, h, c, l;
3012                if (t)
3013                    if (o = "auto" === t.params.slidesPerView ? t.slidesPerViewDynamic() : t.params.slidesPerView, r.realIndex !== t.realIndex && (i = t.activeIndex, t.params.loop ? (t.slides.eq(i).hasClass(t.params.slideDuplicateClass) && (t.loopFix(), t._clientLeft = t.$wrapperEl[0].clientLeft, i = t.activeIndex), f = t.slides.eq(i).prevAll('[data-swiper-slide-index="' + r.realIndex + '"]').eq(0).index(), e = t.slides.eq(i).nextAll('[data-swiper-slide-index="' + r.realIndex + '"]').eq(0).index(), u = void 0 === f ? e : void 0 === e ? f : e - i == i - f ? i : e - i < i - f ? e : f) : u = r.realIndex, t.visibleSlidesIndexes.indexOf(u) < 0 && (t.params.centeredSlides ? u = i < u ? u - Math.floor(o / 2) + 1 : u + Math.floor(o / 2) - 1 : i < u && (u = u - o + 1), t.slideTo(u, n ? 0 : void 0))), s = 1, h = r.params.thumbs.slideThumbActiveClass, 1 < r.params.slidesPerView && !r.params.centeredSlides && (s = r.params.slidesPerView), t.slides.removeClass(h), t.params.loop)
3014                        for (c = 0; c < s; c += 1) t.$wrapperEl.children('[data-swiper-slide-index="' + (r.realIndex + c) + '"]').addClass(h);
3015                    else
3016                        for (l = 0; l < s; l += 1) t.slides.eq(r.realIndex + l).addClass(h)
3017            }
3018        },
3019        pi = [si, hi, ci, li, ai, vi, yi, {
3020            name: "mousewheel",
3021            params: {
3022                mousewheel: {
3023                    enabled: !1,
3024                    releaseOnEdges: !1,
3025                    invert: !1,
3026                    forceToAxis: !1,
3027                    sensitivity: 1,
3028                    eventsTarged: "container"
3029                }
3030            },
3031            create: function() {
3032                var t = this;
3033                n.extend(t, {
3034                    mousewheel: {
3035                        enabled: !1,
3036                        enable: c.enable.bind(t),
3037                        disable: c.disable.bind(t),
3038                        handle: c.handle.bind(t),
3039                        handleMouseEnter: c.handleMouseEnter.bind(t),
3040                        handleMouseLeave: c.handleMouseLeave.bind(t),
3041                        lastScrollTime: n.now()
3042                    }
3043                })
3044            },
3045            on: {
3046                init: function() {
3047                    this.params.mousewheel.enabled && this.mousewheel.enable()
3048                },
3049                destroy: function() {
3050                    this.mousewheel.enabled && this.mousewheel.disable()
3051                }
3052            }
3053        }, {
3054            name: "navigation",
3055            params: {
3056                navigation: {
3057                    nextEl: null,
3058                    prevEl: null,
3059                    hideOnClick: !1,
3060                    disabledClass: "swiper-button-disabled",
3061                    hiddenClass: "swiper-button-hidden",
3062                    lockClass: "swiper-button-lock"
3063                }
3064            },
3065            create: function() {
3066                var t = this;
3067                n.extend(t, {
3068                    navigation: {
3069                        init: y.init.bind(t),
3070                        update: y.update.bind(t),
3071                        destroy: y.destroy.bind(t),
3072                        onNextClick: y.onNextClick.bind(t),
3073                        onPrevClick: y.onPrevClick.bind(t)
3074                    }
3075                })
3076            },
3077            on: {
3078                init: function() {
3079                    this.navigation.init();
3080                    this.navigation.update()
3081                },
3082                toEdge: function() {
3083                    this.navigation.update()
3084                },
3085                fromEdge: function() {
3086                    this.navigation.update()
3087                },
3088                destroy: function() {
3089                    this.navigation.destroy()
3090                },
3091                click: function(n) {
3092                    var u = this.navigation,
3093                        i = u.$nextEl,
3094                        r = u.$prevEl;
3095                    !this.params.navigation.hideOnClick || t(n.target).is(r) || t(n.target).is(i) || (i && i.toggleClass(this.params.navigation.hiddenClass), r && r.toggleClass(this.params.navigation.hiddenClass))
3096                }
3097            }
3098        }, {
3099            name: "pagination",
3100            params: {
3101                pagination: {
3102                    el: null,
3103                    bulletElement: "span",
3104                    clickable: !1,
3105                    hideOnClick: !1,
3106                    renderBullet: null,
3107                    renderProgressbar: null,
3108                    renderFraction: null,
3109                    renderCustom: null,
3110                    progressbarOpposite: !1,
3111                    type: "bullets",
3112                    dynamicBullets: !1,
3113                    dynamicMainBullets: 1,
3114                    formatFractionCurrent: function(n) {
3115                        return n
3116                    },
3117                    formatFractionTotal: function(n) {
3118                        return n
3119                    },
3120                    bulletClass: "swiper-pagination-bullet",
3121                    bulletActiveClass: "swiper-pagination-bullet-active",
3122                    modifierClass: "swiper-pagination-",
3123                    currentClass: "swiper-pagination-current",
3124                    totalClass: "swiper-pagination-total",
3125                    hiddenClass: "swiper-pagination-hidden",
3126                    progressbarFillClass: "swiper-pagination-progressbar-fill",
3127                    progressbarOppositeClass: "swiper-pagination-progressbar-opposite",
3128                    clickableClass: "swiper-pagination-clickable",
3129                    lockClass: "swiper-pagination-lock"
3130                }
3131            },
3132            create: function() {
3133                var t = this;
3134                n.extend(t, {
3135                    pagination: {
3136                        init: nt.init.bind(t),
3137                        render: nt.render.bind(t),
3138                        update: nt.update.bind(t),
3139                        destroy: nt.destroy.bind(t),
3140                        dynamicBulletIndex: 0
3141                    }
3142                })
3143            },
3144            on: {
3145                init: function() {
3146                    this.pagination.init();
3147                    this.pagination.render();
3148                    this.pagination.update()
3149                },
3150                activeIndexChange: function() {
3151                    this.params.loop ? this.pagination.update() : void 0 === this.snapIndex && this.pagination.update()
3152                },
3153                snapIndexChange: function() {
3154                    this.params.loop || this.pagination.update()
3155                },
3156                slidesLengthChange: function() {
3157                    this.params.loop && (this.pagination.render(), this.pagination.update())
3158                },
3159                snapGridLengthChange: function() {
3160                    this.params.loop || (this.pagination.render(), this.pagination.update())
3161                },
3162                destroy: function() {
3163                    this.pagination.destroy()
3164                },
3165                click: function(n) {
3166                    var i = this;
3167                    i.params.pagination.el && i.params.pagination.hideOnClick && 0 < i.pagination.$el.length && !t(n.target).hasClass(i.params.pagination.bulletClass) && i.pagination.$el.toggleClass(i.params.pagination.hiddenClass)
3168                }
3169            }
3170        }, {
3171            name: "scrollbar",
3172            params: {
3173                scrollbar: {
3174                    el: null,
3175                    dragSize: "auto",
3176                    hide: !1,
3177                    draggable: !1,
3178                    snapOnRelease: !0,
3179                    lockClass: "swiper-scrollbar-lock",
3180                    dragClass: "swiper-scrollbar-drag"
3181                }
3182            },
3183            create: function() {
3184                var t = this;
3185                n.extend(t, {
3186                    scrollbar: {
3187                        init: s.init.bind(t),
3188                        destroy: s.destroy.bind(t),
3189                        updateSize: s.updateSize.bind(t),
3190                        setTranslate: s.setTranslate.bind(t),
3191                        setTransition: s.setTransition.bind(t),
3192                        enableDraggable: s.enableDraggable.bind(t),
3193                        disableDraggable: s.disableDraggable.bind(t),
3194                        setDragPosition: s.setDragPosition.bind(t),
3195                        onDragStart: s.onDragStart.bind(t),
3196                        onDragMove: s.onDragMove.bind(t),
3197                        onDragEnd: s.onDragEnd.bind(t),
3198                        isTouched: !1,
3199                        timeout: null,
3200                        dragTimeout: null
3201                    }
3202                })
3203            },
3204            on: {
3205                init: function() {
3206                    this.scrollbar.init();
3207                    this.scrollbar.updateSize();
3208                    this.scrollbar.setTranslate()
3209                },
3210                update: function() {
3211                    this.scrollbar.updateSize()
3212                },
3213                resize: function() {
3214                    this.scrollbar.updateSize()
3215                },
3216                observerUpdate: function() {
3217                    this.scrollbar.updateSize()
3218                },
3219                setTranslate: function() {
3220                    this.scrollbar.setTranslate()
3221                },
3222                setTransition: function(n) {
3223                    this.scrollbar.setTransition(n)
3224                },
3225                destroy: function() {
3226                    this.scrollbar.destroy()
3227                }
3228            }
3229        }, {
3230            name: "parallax",
3231            params: {
3232                parallax: {
3233                    enabled: !1
3234                }
3235            },
3236            create: function() {
3237                n.extend(this, {
3238                    parallax: {
3239                        setTransform: st.setTransform.bind(this),
3240                        setTranslate: st.setTranslate.bind(this),
3241                        setTransition: st.setTransition.bind(this)
3242                    }
3243                })
3244            },
3245            on: {
3246                beforeInit: function() {
3247                    this.params.parallax.enabled && (this.params.watchSlidesProgress = !0, this.originalParams.watchSlidesProgress = !0)
3248                },
3249                init: function() {
3250                    this.params.parallax && this.parallax.setTranslate()
3251                },
3252                setTranslate: function() {
3253                    this.params.parallax && this.parallax.setTranslate()
3254                },
3255                setTransition: function(n) {
3256                    this.params.parallax && this.parallax.setTransition(n)
3257                }
3258            }
3259        }, {
3260            name: "zoom",
3261            params: {
3262                zoom: {
3263                    enabled: !1,
3264                    maxRatio: 3,
3265                    minRatio: 1,
3266                    toggle: !0,
3267                    cont
vendor: 16,384 bytes, lines 3267-3669
3267ainerClass: "swiper-zoom-container",
3268                    zoomedSlideClass: "swiper-slide-zoomed"
3269                }
3270            },
3271            create: function() {
3272                var t = this,
3273                    r = {
3274                        enabled: !1,
3275                        scale: 1,
3276                        currentScale: 1,
3277                        isScaling: !1,
3278                        gesture: {
3279                            $slideEl: void 0,
3280                            slideWidth: void 0,
3281                            slideHeight: void 0,
3282                            $imageEl: void 0,
3283                            $imageWrapEl: void 0,
3284                            maxRatio: 3
3285                        },
3286                        image: {
3287                            isTouched: void 0,
3288                            isMoved: void 0,
3289                            currentX: void 0,
3290                            currentY: void 0,
3291                            minX: void 0,
3292                            minY: void 0,
3293                            maxX: void 0,
3294                            maxY: void 0,
3295                            width: void 0,
3296                            height: void 0,
3297                            startX: void 0,
3298                            startY: void 0,
3299                            touchesStart: {},
3300                            touchesCurrent: {}
3301                        },
3302                        velocity: {
3303                            x: void 0,
3304                            y: void 0,
3305                            prevPositionX: void 0,
3306                            prevPositionY: void 0,
3307                            prevTime: void 0
3308                        }
3309                    },
3310                    i;
3311                "onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out".split(" ").forEach(function(n) {
3312                    r[n] = ht[n].bind(t)
3313                });
3314                n.extend(t, {
3315                    zoom: r
3316                });
3317                i = 1;
3318                Object.defineProperty(t.zoom, "scale", {
3319                    get: function() {
3320                        return i
3321                    },
3322                    set: function(n) {
3323                        if (i !== n) {
3324                            var r = t.zoom.gesture.$imageEl ? t.zoom.gesture.$imageEl[0] : void 0,
3325                                u = t.zoom.gesture.$slideEl ? t.zoom.gesture.$slideEl[0] : void 0;
3326                            t.emit("zoomChange", n, r, u)
3327                        }
3328                        i = n
3329                    }
3330                })
3331            },
3332            on: {
3333                init: function() {
3334                    this.params.zoom.enabled && this.zoom.enable()
3335                },
3336                destroy: function() {
3337                    this.zoom.disable()
3338                },
3339                touchStart: function(n) {
3340                    this.zoom.enabled && this.zoom.onTouchStart(n)
3341                },
3342                touchEnd: function(n) {
3343                    this.zoom.enabled && this.zoom.onTouchEnd(n)
3344                },
3345                doubleTap: function(n) {
3346                    this.params.zoom.enabled && this.zoom.enabled && this.params.zoom.toggle && this.zoom.toggle(n)
3347                },
3348                transitionEnd: function() {
3349                    this.zoom.enabled && this.params.zoom.enabled && this.zoom.onTransitionEnd()
3350                }
3351            }
3352        }, {
3353            name: "lazy",
3354            params: {
3355                lazy: {
3356                    enabled: !1,
3357                    loadPrevNext: !1,
3358                    loadPrevNextAmount: 1,
3359                    loadOnTransitionStart: !1,
3360                    elementClass: "swiper-lazy",
3361                    loadingClass: "swiper-lazy-loading",
3362                    loadedClass: "swiper-lazy-loaded",
3363                    preloaderClass: "swiper-lazy-preloader"
3364                }
3365            },
3366            create: function() {
3367                n.extend(this, {
3368                    lazy: {
3369                        initialImageLoaded: !1,
3370                        load: yt.load.bind(this),
3371                        loadInSlide: yt.loadInSlide.bind(this)
3372                    }
3373                })
3374            },
3375            on: {
3376                beforeInit: function() {
3377                    this.params.lazy.enabled && this.params.preloadImages && (this.params.preloadImages = !1)
3378                },
3379                init: function() {
3380                    this.params.lazy.enabled && !this.params.loop && 0 === this.params.initialSlide && this.lazy.load()
3381                },
3382                scroll: function() {
3383                    this.params.freeMode && !this.params.freeModeSticky && this.lazy.load()
3384                },
3385                resize: function() {
3386                    this.params.lazy.enabled && this.lazy.load()
3387                },
3388                scrollbarDragMove: function() {
3389                    this.params.lazy.enabled && this.lazy.load()
3390                },
3391                transitionStart: function() {
3392                    var n = this;
3393                    n.params.lazy.enabled && (n.params.lazy.loadOnTransitionStart || !n.params.lazy.loadOnTransitionStart && !n.lazy.initialImageLoaded) && n.lazy.load()
3394                },
3395                transitionEnd: function() {
3396                    this.params.lazy.enabled && !this.params.lazy.loadOnTransitionStart && this.lazy.load()
3397                }
3398            }
3399        }, {
3400            name: "controller",
3401            params: {
3402                controller: {
3403                    control: void 0,
3404                    inverse: !1,
3405                    by: "slide"
3406                }
3407            },
3408            create: function() {
3409                var t = this;
3410                n.extend(t, {
3411                    controller: {
3412                        control: t.params.controller.control,
3413                        getInterpolateFunction: p.getInterpolateFunction.bind(t),
3414                        setTranslate: p.setTranslate.bind(t),
3415                        setTransition: p.setTransition.bind(t)
3416                    }
3417                })
3418            },
3419            on: {
3420                update: function() {
3421                    this.controller.control && this.controller.spline && (this.controller.spline = void 0, delete this.controller.spline)
3422                },
3423                resize: function() {
3424                    this.controller.control && this.controller.spline && (this.controller.spline = void 0, delete this.controller.spline)
3425                },
3426                observerUpdate: function() {
3427                    this.controller.control && this.controller.spline && (this.controller.spline = void 0, delete this.controller.spline)
3428                },
3429                setTranslate: function(n, t) {
3430                    this.controller.control && this.controller.setTranslate(n, t)
3431                },
3432                setTransition: function(n, t) {
3433                    this.controller.control && this.controller.setTransition(n, t)
3434                }
3435            }
3436        }, {
3437            name: "a11y",
3438            params: {
3439                a11y: {
3440                    enabled: !0,
3441                    notificationClass: "swiper-notification",
3442                    prevSlideMessage: "Previous slide",
3443                    nextSlideMessage: "Next slide",
3444                    firstSlideMessage: "This is the first slide",
3445                    lastSlideMessage: "This is the last slide",
3446                    paginationBulletMessage: "Go to slide {{index}}"
3447                }
3448            },
3449            create: function() {
3450                var i = this;
3451                n.extend(i, {
3452                    a11y: {
3453                        liveRegion: t('<span class="' + i.params.a11y.notificationClass + '" aria-live="assertive" aria-atomic="true"><\/span>')
3454                    }
3455                });
3456                Object.keys(pt).forEach(function(n) {
3457                    i.a11y[n] = pt[n].bind(i)
3458                })
3459            },
3460            on: {
3461                init: function() {
3462                    this.params.a11y.enabled && (this.a11y.init(), this.a11y.updateNavigation())
3463                },
3464                toEdge: function() {
3465                    this.params.a11y.enabled && this.a11y.updateNavigation()
3466                },
3467                fromEdge: function() {
3468                    this.params.a11y.enabled && this.a11y.updateNavigation()
3469                },
3470                paginationUpdate: function() {
3471                    this.params.a11y.enabled && this.a11y.updatePagination()
3472                },
3473                destroy: function() {
3474                    this.params.a11y.enabled && this.a11y.destroy()
3475                }
3476            }
3477        }, {
3478            name: "history",
3479            params: {
3480                history: {
3481                    enabled: !1,
3482                    replaceState: !1,
3483                    key: "slides"
3484                }
3485            },
3486            create: function() {
3487                var t = this;
3488                n.extend(t, {
3489                    history: {
3490                        init: l.init.bind(t),
3491                        setHistory: l.setHistory.bind(t),
3492                        setHistoryPopState: l.setHistoryPopState.bind(t),
3493                        scrollToSlide: l.scrollToSlide.bind(t),
3494                        destroy: l.destroy.bind(t)
3495                    }
3496                })
3497            },
3498            on: {
3499                init: function() {
3500                    this.params.history.enabled && this.history.init()
3501                },
3502                destroy: function() {
3503                    this.params.history.enabled && this.history.destroy()
3504                },
3505                transitionEnd: function() {
3506                    this.history.initialized && this.history.setHistory(this.params.history.key, this.activeIndex)
3507                }
3508            }
3509        }, {
3510            name: "hash-navigation",
3511            params: {
3512                hashNavigation: {
3513                    enabled: !1,
3514                    replaceState: !1,
3515                    watchState: !1
3516                }
3517            },
3518            create: function() {
3519                var t = this;
3520                n.extend(t, {
3521                    hashNavigation: {
3522                        initialized: !1,
3523                        init: tt.init.bind(t),
3524                        destroy: tt.destroy.bind(t),
3525                        setHash: tt.setHash.bind(t),
3526                        onHashCange: tt.onHashCange.bind(t)
3527                    }
3528                })
3529            },
3530            on: {
3531                init: function() {
3532                    this.params.hashNavigation.enabled && this.hashNavigation.init()
3533                },
3534                destroy: function() {
3535                    this.params.hashNavigation.enabled && this.hashNavigation.destroy()
3536                },
3537                transitionEnd: function() {
3538                    this.hashNavigation.initialized && this.hashNavigation.setHash()
3539                }
3540            }
3541        }, {
3542            name: "autoplay",
3543            params: {
3544                autoplay: {
3545                    enabled: !1,
3546                    delay: 3e3,
3547                    waitForTransition: !0,
3548                    disableOnInteraction: !0,
3549                    stopOnLastSlide: !1,
3550                    reverseDirection: !1
3551                }
3552            },
3553            create: function() {
3554                var t = this;
3555                n.extend(t, {
3556                    autoplay: {
3557                        running: !1,
3558                        paused: !1,
3559                        run: it.run.bind(t),
3560                        start: it.start.bind(t),
3561                        stop: it.stop.bind(t),
3562                        pause: it.pause.bind(t),
3563                        onTransitionEnd: function(n) {
3564                            t && !t.destroyed && t.$wrapperEl && n.target === this && (t.$wrapperEl[0].removeEventListener("transitionend", t.autoplay.onTransitionEnd), t.$wrapperEl[0].removeEventListener("webkitTransitionEnd", t.autoplay.onTransitionEnd), t.autoplay.paused = !1, t.autoplay.running ? t.autoplay.run() : t.autoplay.stop())
3565                        }
3566                    }
3567                })
3568            },
3569            on: {
3570                init: function() {
3571                    this.params.autoplay.enabled && this.autoplay.start()
3572                },
3573                beforeTransitionStart: function(n, t) {
3574                    this.autoplay.running && (t || !this.params.autoplay.disableOnInteraction ? this.autoplay.pause(n) : this.autoplay.stop())
3575                },
3576                sliderFirstMove: function() {
3577                    this.autoplay.running && (this.params.autoplay.disableOnInteraction ? this.autoplay.stop() : this.autoplay.pause())
3578                },
3579                destroy: function() {
3580                    this.autoplay.running && this.autoplay.stop()
3581                }
3582            }
3583        }, {
3584            name: "effect-fade",
3585            params: {
3586                fadeEffect: {
3587                    crossFade: !1
3588                }
3589            },
3590            create: function() {
3591                n.extend(this, {
3592                    fadeEffect: {
3593                        setTranslate: wt.setTranslate.bind(this),
3594                        setTransition: wt.setTransition.bind(this)
3595                    }
3596                })
3597            },
3598            on: {
3599                beforeInit: function() {
3600                    var t = this,
3601                        i;
3602                    "fade" === t.params.effect && (t.classNames.push(t.params.containerModifierClass + "fade"), i = {
3603                        slidesPerView: 1,
3604                        slidesPerColumn: 1,
3605                        slidesPerGroup: 1,
3606                        watchSlidesProgress: !0,
3607                        spaceBetween: 0,
3608                        virtualTranslate: !0
3609                    }, n.extend(t.params, i), n.extend(t.originalParams, i))
3610                },
3611                setTranslate: function() {
3612                    "fade" === this.params.effect && this.fadeEffect.setTranslate()
3613                },
3614                setTransition: function(n) {
3615                    "fade" === this.params.effect && this.fadeEffect.setTransition(n)
3616                }
3617            }
3618        }, {
3619            name: "effect-cube",
3620            params: {
3621                cubeEffect: {
3622                    slideShadows: !0,
3623                    shadow: !0,
3624                    shadowOffset: 20,
3625                    shadowScale: .94
3626                }
3627            },
3628            create: function() {
3629                n.extend(this, {
3630                    cubeEffect: {
3631                        setTranslate: bt.setTranslate.bind(this),
3632                        setTransition: bt.setTransition.bind(this)
3633                    }
3634                })
3635            },
3636            on: {
3637                beforeInit: function() {
3638                    var t = this,
3639                        i;
3640                    "cube" === t.params.effect && (t.classNames.push(t.params.containerModifierClass + "cube"), t.classNames.push(t.params.containerModifierClass + "3d"), i = {
3641                        slidesPerView: 1,
3642                        slidesPerColumn: 1,
3643                        slidesPerGroup: 1,
3644                        watchSlidesProgress: !0,
3645                        resistanceRatio: 0,
3646                        spaceBetween: 0,
3647                        centeredSlides: !1,
3648                        virtualTranslate: !0
3649                    }, n.extend(t.params, i), n.extend(t.originalParams, i))
3650                },
3651                setTranslate: function() {
3652                    "cube" === this.params.effect && this.cubeEffect.setTranslate()
3653                },
3654                setTransition: function(n) {
3655                    "cube" === this.params.effect && this.cubeEffect.setTransition(n)
3656                }
3657            }
3658        }, {
3659            name: "effect-flip",
3660            params: {
3661                flipEffect: {
3662                    slideShadows: !0,
3663                    limitRotation: !0
3664                }
3665            },
3666            create: function() {
3667                n.extend(this, {
3668                    flipEffect: {
3669                        setTranslate: kt.setTra
3669nslate.bind(this),
3670                        setTransition: kt.setTransition.bind(this)
3671                    }
3672                })
3673            },
3674            on: {
3675                beforeInit: function() {
3676                    var t = this,
3677                        i;
3678                    "flip" === t.params.effect && (t.classNames.push(t.params.containerModifierClass + "flip"), t.classNames.push(t.params.containerModifierClass + "3d"), i = {
3679                        slidesPerView: 1,
3680                        slidesPerColumn: 1,
3681                        slidesPerGroup: 1,
3682                        watchSlidesProgress: !0,
3683                        spaceBetween: 0,
3684                        virtualTranslate: !0
3685                    }, n.extend(t.params, i), n.extend(t.originalParams, i))
3686                },
3687                setTranslate: function() {
3688                    "flip" === this.params.effect && this.flipEffect.setTranslate()
3689                },
3690                setTransition: function(n) {
3691                    "flip" === this.params.effect && this.flipEffect.setTransition(n)
3692                }
3693            }
3694        }, {
3695            name: "effect-coverflow",
3696            params: {
3697                coverflowEffect: {
3698                    rotate: 50,
3699                    stretch: 0,
3700                    depth: 100,
3701                    modifier: 1,
3702                    slideShadows: !0
3703                }
3704            },
3705            create: function() {
3706                n.extend(this, {
3707                    coverflowEffect: {
3708                        setTranslate: dt.setTranslate.bind(this),
3709                        setTransition: dt.setTransition.bind(this)
3710                    }
3711                })
3712            },
3713            on: {
3714                beforeInit: function() {
3715                    var n = this;
3716                    "coverflow" === n.params.effect && (n.classNames.push(n.params.containerModifierClass + "coverflow"), n.classNames.push(n.params.containerModifierClass + "3d"), n.params.watchSlidesProgress = !0, n.originalParams.watchSlidesProgress = !0)
3717                },
3718                setTranslate: function() {
3719                    "coverflow" === this.params.effect && this.coverflowEffect.setTranslate()
3720                },
3721                setTransition: function(n) {
3722                    "coverflow" === this.params.effect && this.coverflowEffect.setTransition(n)
3723                }
3724            }
3725        }, {
3726            name: "thumbs",
3727            params: {
3728                thumbs: {
3729                    swiper: null,
3730                    slideThumbActiveClass: "swiper-slide-thumb-active",
3731                    thumbsContainerClass: "swiper-container-thumbs"
3732                }
3733            },
3734            create: function() {
3735                n.extend(this, {
3736                    thumbs: {
3737                        swiper: null,
3738                        init: ct.init.bind(this),
3739                        update: ct.update.bind(this),
3740                        onThumbClick: ct.onThumbClick.bind(this)
3741                    }
3742                })
3743            },
3744            on: {
3745                beforeInit: function() {
3746                    var n = this.params.thumbs;
3747                    n && n.swiper && (this.thumbs.init(), this.thumbs.update(!0))
3748                },
3749                slideChange: function() {
3750                    this.thumbs.swiper && this.thumbs.update()
3751                },
3752                update: function() {
3753                    this.thumbs.swiper && this.thumbs.update()
3754                },
3755                resize: function() {
3756                    this.thumbs.swiper && this.thumbs.update()
3757                },
3758                observerUpdate: function() {
3759                    this.thumbs.swiper && this.thumbs.update()
3760                },
3761                setTransition: function(n) {
3762                    var t = this.thumbs.swiper;
3763                    t && t.setTransition(n)
3764                },
3765                beforeDestroy: function() {
3766                    var n = this.thumbs.swiper;
3767                    n && this.thumbs.swiperCreated && n && n.destroy()
3768                }
3769            }
3770        }];
3771    return void 0 === o.use && (o.use = o.Class.use, o.installModule = o.Class.installModule), o.use(pi), o
3772});
3773/*!
3774 * Bootstrap v4.3.1 (https://getbootstrap.com/)
3775 * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
3776 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
3777 */
3778! function(n, t) {
3779    "object" == typeof exports && "undefined" != typeof module ? t(exports, require("jquery"), require("popper.js")) : "function" == typeof define && define.amd ? define(["exports", "jquery", "popper.js"], t) : t((n = n || self).bootstrap = {}, n.jQuery, n.Popper)
3780}(this, function(n, t, i) {
3781    "use strict";
3782
3783    function uu(n, t) {
3784        for (var i, r = 0; r < t.length; r++) i = t[r], i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(n, i.key, i)
3785    }
3786
3787    function l(n, t, i) {
3788        return t && uu(n.prototype, t), i && uu(n, i), n
3789    }
3790
3791    function f(n) {
3792        for (var i, r, t = 1; t < arguments.length; t++) i = null != arguments[t] ? arguments[t] : {}, r = Object.keys(i), "function" == typeof Object.getOwnPropertySymbols && (r = r.concat(Object.getOwnPropertySymbols(i).filter(function(n) {
3793            return Object.getOwnPropertyDescriptor(i, n).enumerable
3794        }))), r.forEach(function(t) {
3795            var r, u, f;
3796            r = n;
3797            f = i[u = t];
3798            u in r ? Object.defineProperty(r, u, {
3799                value: f,
3800                enumerable: !0,
3801                configurable: !0,
3802                writable: !0
3803            }) : r[u] = f
3804        });
3805        return n
3806    }
3807
3808    function cf(n) {
3809        var u = this,
3810            i = !1;
3811        return t(this).one(r.TRANSITION_END, function() {
3812            i = !0
3813        }), setTimeout(function() {
3814            i || r.triggerTransitionEnd(u)
3815        }, n), this
3816    }
3817
3818    function wu(n, t, i) {
3819        if (0 === n.length) return n;
3820        if (i && "function" == typeof i) return i(n);
3821        for (var u = (new window.DOMParser).parseFromString(n, "text/html"), e = Object.keys(t), f = [].slice.call(u.body.querySelectorAll("*")), o = function(n) {
3822                var i = f[n],
3823                    o = i.nodeName.toLowerCase(),
3824                    r, u;
3825                if (-1 === e.indexOf(i.nodeName.toLowerCase())) return i.parentNode.removeChild(i), "continue";
3826                r = [].slice.call(i.attributes);
3827                u = [].concat(t["*"] || [], t[o] || []);
3828                r.forEach(function(n) {
3829                    (function(n, t) {
3830                        var i = n.nodeName.toLowerCase();
3831                        if (-1 !== t.indexOf(i)) return -1 === us.indexOf(i) || Boolean(n.nodeValue.match(fs) || n.nodeValue.match(es));
3832                        for (var u = t.filter(function(n) {
3833                                return n instanceof RegExp
3834                            }), r = 0, f = u.length; r < f; r++)
3835                            if (i.match(u[r])) return !0;
3836                        return !1
3837                    })(n, u) || i.removeAttribute(n.nodeName)
3838                })
3839            }, r = 0, s = f.length; r < s; r++) o(r);
3840        return u.body.innerHTML
3841    }
3842    var at, r;
3843    t = t && t.hasOwnProperty("default") ? t.default : t;
3844    i = i && i.hasOwnProperty("default") ? i.default : i;
3845    at = "transitionend";
3846    r = {
3847        TRANSITION_END: "bsTransitionEnd",
3848        getUID: function(n) {
3849            for (; n += ~~(1e6 * Math.random()), document.getElementById(n););
3850            return n
3851        },
3852        getSelectorFromElement: function(n) {
3853            var t = n.getAttribute("data-target"),
3854                i;
3855            t && "#" !== t || (i = n.getAttribute("href"), t = i && "#" !== i ? i.trim() : "");
3856            try {
3857                return document.querySelector(t) ? t : null
3858            } catch (n) {
3859                return null
3860            }
3861        },
3862        getTransitionDurationFromElement: function(n) {
3863            if (!n) return 0;
3864            var i = t(n).css("transition-duration"),
3865                r = t(n).css("transition-delay"),
3866                u = parseFloat(i),
3867                f = parseFloat(r);
3868            return u || f ? (i = i.split(",")[0], r = r.split(",")[0], 1e3 * (parseFloat(i) + parseFloat(r))) : 0
3869        },
3870        reflow: function(n) {
3871            return n.offsetHeight
3872        },
3873        triggerTransitionEnd: function(n) {
3874            t(n).trigger(at)
3875        },
3876        supportsTransitionEnd: function() {
3877            return Boolean(at)
3878        },
3879        isElement: function(n) {
3880            return (n[0] || n).nodeType
3881        },
3882        typeCheckConfig: function(n, t, i) {
3883            var u, s;
3884            for (u in i)
3885                if (Object.prototype.hasOwnProperty.call(i, u)) {
3886                    var e = i[u],
3887                        f = t[u],
3888                        o = f && r.isElement(f) ? "element" : (s = f, {}.toString.call(s).match(/\s([a-z]+)/i)[1].toLowerCase());
3889                    if (!new RegExp(e).test(o)) throw new Error(n.toUpperCase() + ': Option "' + u + '" provided type "' + o + '" but expected type "' + e + '".');
3890                }
3891        },
3892        findShadowRoot: function(n) {
3893            if (!document.documentElement.attachShadow) return null;
3894            if ("function" != typeof n.getRootNode) return n instanceof ShadowRoot ? n : n.parentNode ? r.findShadowRoot(n.parentNode) : null;
3895            var t = n.getRootNode();
3896            return t instanceof ShadowRoot ? t : null
3897        }
3898    };
3899    t.fn.emulateTransitionEnd = cf;
3900    t.event.special[r.TRANSITION_END] = {
3901        bindType: at,
3902        delegateType: at,
3903        handle: function(n) {
3904            if (t(n.target).is(this)) return n.handleObj.handler.apply(this, arguments)
3905        }
3906    };
3907    var vt = "alert",
3908        pi = "bs.alert",
3909        cr = "." + pi,
3910        lf = t.fn[vt],
3911        lr = {
3912            CLOSE: "close" + cr,
3913            CLOSED: "closed" + cr,
3914            CLICK_DATA_API: "click" + cr + ".data-api"
3915        },
3916        af = "alert",
3917        vf = "fade",
3918        yf = "show",
3919        it = function() {
3920            function n(n) {
3921                this._element = n
3922            }
3923            var i = n.prototype;
3924            return i.close = function(n) {
3925                var t = this._element;
3926                n && (t = this._getRootElement(n));
3927                this._triggerCloseEvent(t).isDefaultPrevented() || this._removeElement(t)
3928            }, i.dispose = function() {
3929                t.removeData(this._element, pi);
3930                this._element = null
3931            }, i._getRootElement = function(n) {
3932                var u = r.getSelectorFromElement(n),
3933                    i = !1;
3934                return u && (i = document.querySelector(u)), i || (i = t(n).closest("." + af)[0]), i
3935            }, i._triggerCloseEvent = function(n) {
3936                var i = t.Event(lr.CLOSE);
3937                return t(n).trigger(i), i
3938            }, i._removeElement = function(n) {
3939                var u = this,
3940                    i;
3941                (t(n).removeClass(yf), t(n).hasClass(vf)) ? (i = r.getTransitionDurationFromElement(n), t(n).one(r.TRANSITION_END, function(t) {
3942                    return u._destroyElement(n, t)
3943                }).emulateTransitionEnd(i)) : this._destroyElement(n)
3944            }, i._destroyElement = function(n) {
3945                t(n).detach().trigger(lr.CLOSED).remove()
3946            }, n._jQueryInterface = function(i) {
3947                return this.each(function() {
3948                    var u = t(this),
3949                        r = u.data(pi);
3950                    r || (r = new n(this), u.data(pi, r));
3951                    "close" === i && r[i](this)
3952                })
3953            }, n._handleDismiss = function(n) {
3954                return function(t) {
3955                    t && t.preventDefault();
3956                    n.close(this)
3957                }
3958            }, l(n, null, [{
3959                key: "VERSION",
3960                get: function() {
3961                    return "4.3.1"
3962                }
3963            }]), n
3964        }();
3965    t(document).on(lr.CLICK_DATA_API, '[data-dismiss="alert"]', it._handleDismiss(new it));
3966    t.fn[vt] = it._jQueryInterface;
3967    t.fn[vt].Constructor = it;
3968    t.fn[vt].noConflict = function() {
3969        return t.fn[vt] = lf, it._jQueryInterface
3970    };
3971    var yt = "button",
3972        wi = "bs.button",
3973        ar = "." + wi,
3974        vr = ".data-api",
3975        pf = t.fn[yt],
3976        pt = "active",
3977        wf = "btn",
3978        bf = "focus",
3979        fu = '[data-toggle^="button"]',
3980        kf = '[data-toggle="buttons"]',
3981        df = 'input:not([type="hidden"])',
3982        gf = ".active",
3983        eu = ".btn",
3984        ou = {
3985            CLICK_DATA_API: "click" + ar + vr,
3986            FOCUS_BLUR_DATA_API: "focus" + ar + vr + " blur" + ar + vr
3987        },
3988        wt = function() {
3989            function n(n) {
3990                this._element = n
3991            }
3992            var i = n.prototype;
3993            return i.toggle = function() {
3994                var r = !0,
3995                    f = !0,
3996                    i = t(this._element).closest(kf)[0],
3997                    n, u;
3998                if (i && (n = this._element.querySelector(df), n)) {
3999                    if ("radio" === n.type && (n.checked && this._element.classList.contains(pt) ? r = !1 : (u = i.querySelector(gf), u && t(u).removeClass(pt))), r) {
4000                        if (n.hasAttribute("disabled") || i.hasAttribute("disabled") || n.classList.contains("disabled") || i.classList.contains("disabled")) return;
4001                        n.checked = !this._element.classList.contains(pt);
4002                        t(n).trigger("change")
4003                    }
4004                    n.focus();
4005                    f = !1
4006                }
4007                f && this._element.setAttribute("aria-pressed", !this._element.classList.contains(pt));
4008                r && t(this._element).toggleClass(pt)
4009            }, i.dispose = function() {
4010                t.removeData(this._element, wi);
4011                this._element = null
4012            }, n._jQueryInterface = function(i) {
4013                return this.each(function() {
4014                    var r = t(this).data(wi);
4015                    r || (r = new n(this), t(this).data(wi, r));
4016                    "toggle" === i && r[i]()
4017                })
4018            }, l(n, null, [{
4019                key: "VERSION",
4020                get: function() {
4021                    return "4.3.1"
4022                }
4023            }]), n
4024        }();
4025    t(document).on(ou.CLICK_DATA_API, fu, function(n) {
4026        n.preventDefault();
4027        var i = n.target;
4028        t(i).hasClass(wf) || (i = t(i).closest(eu));
4029        wt._jQueryInterface.call(t(i), "toggle")
4030    }).on(ou.FOCUS_BLUR_DATA_API, fu, function(n) {
4031        var i = t(n.target).closest(eu)[0];
4032        t(i).toggleClass(bf, /^focus(in)?$/.test(n.type))
4033    });
4034    t.fn[yt] = wt._jQueryInterface;
4035    t.fn[yt].Constructor = wt;
4036    t.fn[yt].noConflict = function() {
4037        return t.fn[yt] = pf, wt._jQueryInterface
4038    };
4039    var rt = "carousel",
4040        bt = "bs.carousel",
4041        o = "." + bt,
4042        su = ".data-api",
4043        ne = t.fn[rt],
4044        yr = {
4045            interval: 5e3,
4046            keyboard: !0,
4047            slide: !1,
4048            pause: "hover",
4049            wrap: !0,
4050            touch: !0
4051        },
4052        te = {
4053            interval: "(number|boolean)",
4054            keyboard: "boolean",
4055            slide: "(boolean|string)",
4056            pause: "(string|boolean)",
4057            wrap: "boolean",
4058            touch: "boolean"
4059        },
4060        bi = "next",
4061        ki = "prev",
4062        ie = "left",
4063        re = "right",
4064        s = {
4065            SLIDE: "slide" + o,
4066            SLID: "slid" + o,
4067            KEYDOWN: "keydown" + o,
4068            MOUSEENTER: "mouseenter" + o,
4069            MOUSELEAVE: "mouseleave" + o,
4070            TOUCHSTART: "touchstart" + o,
4071            TOUCHMOVE: "touchmove" + o,
4072            TOUCHEND: "touchend" + o,
4073            POINTERDOWN: "pointerdown" + o,
4074            POINTERUP: "pointerup" + o,
4075            DRAG_START: "dragstart" + o,
4076            LOAD_DATA_API: "load" + o + su,
4077            CLICK_DATA_API: "click" + o + su
4078        },
4079        ue = "carousel",
4080        w = "active",
4081        fe = "slide",
4082        ee = "carousel-item-right",
4083        oe = "carousel-item-left",
4084        se = "carousel-item-next",
4085        he = "carousel-item-prev",
4086        ce = "pointer-event",
4087        le = ".active",
4088        pr = ".active.carousel-item",
4089        ae = ".carousel-item",
4090        ve = ".carousel-item img",
4091        ye = ".carousel-item-next, .carousel-item-prev",
4092        pe = ".carousel-indicators",
4093        we = '[data-ride="carousel"]',
4094        hu = {
4095            TOUCH: "touch",
4096            PEN: "pen"
4097        },
4098        ut = function() {
4099            function i(n, t) {
4100                this._items = null;
4101                this._interval = null;
4102                this._activeElement = null;
4103                this._isPaused = !1;
4104                this._isSliding = !1;
4105                this.touchTimeout = null;
4106                this.touchStartX = 0;
4107                this.touchDeltaX = 0;
4108                this._config = this._getConfig(t);
4109                this._element = n;
4110                this._indicatorsElement = this._element.querySelector(pe);
4111                this._touchSupported = "ontouchstart" in document.documentElement || 0 < navigator.maxTouchPoints;
4112                this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
4113                this._addEventListeners()
4114            }
4115            var n = i.prototype;
4116            return n.next = function() {
4117                this._isSliding || this._slide(bi)
4118            }, n.nextWhenVisible = function() {
4119                !document.hidden && t(this._element).is(":visible") && "hidden" !== t(this._element).css("visibility") && this.next()
4120            }, n.prev = function() {
4121                this._isSliding || this._slide(ki)
4122            }, n.pause = function(n) {
4123                n || (this._isPaused = !0);
4124                this._element.querySelector(ye) && (r.triggerTransitionEnd(this._element), this.cycle(!0));
4125                clearInterval(this._interval);
4126                this._interval = null
4127            }, n.cycle = function(n) {
4128                n || (this._isPaused = !1);
4129                this._interval && (clearInterval(this._interval), this._interval = null);
4130                this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval))
4131            }, n.to = function(n) {
4132                var u = this,
4133                    i, r;
4134                if (this._activeElement = this._element.querySelector(pr), i = this._getItemIndex(this._activeElement), !(n > this._items.length - 1 || n < 0))
4135                    if (this._isSliding) t(this._element).one(s.SLID, function() {
4136                        return u.to(n)
4137                    });
4138                    else {
4139                        if (i === n) return this.pause(), void this.cycle();
4140                        r = i < n ? bi : ki;
4141                        this._slide(r, this._items[n])
4142                    }
4143            }, n.dispose = function() {
4144                t(this._element).off(o);
4145                t.removeData(this._element, bt);
4146                this._items = null;
4147                this._config = null;
4148                this._element = null;
4149                this._interval = null;
4150                this._isPaused = null;
4151                this._isSliding = null;
4152                this._activeElement = null;
4153                this._indicatorsElement = null
4154            }, n._getConfig = function(n) {
4155                return n = f({}, yr, n), r.typeCheckConfig(rt, n, te), n
4156            }, n._handleSwipe = function() {
4157                var t = Math.abs(this.touchDeltaX),
4158                    n;
4159                t <= 40 || (n = t / this.touchDeltaX, 0 < n && this.prev(), n < 0 && this.next())
4160            }, n._addEventListeners = function() {
4161                var n = this;
4162                this._config.keyboard && t(this._element).on(s.KEYDOWN, function(t) {
4163                    return n._keydown(t)
4164                });
4165                "hover" === this._config.pause && t(this._element).on(s.MOUSEENTER, function(t) {
4166                    return n.pause(t)
4167                }).on(s.MOUSELEAVE, function(t) {
4168                    return n.cycle(t)
4169                });
4170                this._config.touch && this._addTouchEventListeners()
4171            }, n._addTouchEventListeners = function() {
4172                var n = this,
4173                    i, r;
4174                this._touchSupported && (i = function(t) {
4175                    n._pointerEvent && hu[t.originalEvent.pointerType.toUpperCase()] ? n.touchStartX = t.originalEvent.clientX : n._pointerEvent || (n.touchStartX = t.originalEvent.touches[0].clientX)
4176                }, r = function(t) {
4177                    n._pointerEvent && hu[t.originalEvent.pointerType.toUpperCase()] && (n.touchDeltaX = t.originalEvent.clientX - n.touchStartX);
4178                    n._handleSwipe();
4179                    "hover" === n._config.pause && (n.pause(), n.touchTimeout && clearTimeout(n.touchTimeout), n.touchTimeout = setTimeout(function(t) {
4180                        return n.cycle(t)
4181                    }, 500 + n._config.interval))
4182                }, t(this._element.querySelectorAll(ve)).on(s.DRAG_START, function(n) {
4183                    return n.preventDefault()
4184                }), this._pointerEvent ? (t(this._element).on(s.POINTERDOWN, function(n) {
4185                    return i(n)
4186                }), t(this._element).on(s.POINTERUP, function(n) {
4187                    return r(n)
4188                }), this._element.classList.add(ce)) : (t(this._element).on(s.TOUCHSTART, function(n) {
4189                    return i(n)
4190                }), t(this._element).on(s.TOUCHMOVE, function(t) {
4191                    var i;
4192                    n.touchDeltaX = (i = t).originalEvent.touches && 1 < i.originalEvent.touches.length ? 0 : i.originalEvent.touches[0].clientX - n.touchStartX
4193                }), t(this._element).on(s.TOUCHEND, function(n) {
4194                    return r(n)
4195                })))
4196            }, n._keydown = function(n) {
4197                if (!/input|textarea/i.test(n.target.tagName)) switch (n.which) {
4198                    case 37:
4199                        n.preventDefault();
4200                        this.prev();
4201                        break;
4202                    case 39:
4203                        n.preventDefault();
4204                        this.next()
4205                }
4206            }, n._getItemIndex = function(n) {
4207                return this._items = n && n.parentNode ? [].slice.call(n.parentNode.querySelectorAll(ae)) : [], this._items.indexOf(n)
4208            }, n._getItemByDirection = function(n, t) {
4209                var u = n === bi,
4210                    f = n === ki,
4211                    i = this._getItemIndex(t),
4212                    e = this._items.length - 1,
4213                    r;
4214                return (f && 0 === i || u && i === e) && !this._config.wrap ? t : (r = (i + (n === ki ? -1 : 1)) % this._items.length, -1 === r ? this._items[this._items.length - 1] : this._items[r])
4215            }, n._triggerSlideEvent = function(n, i) {
4216                var u = this._getItemIndex(n),
4217                    f = this._getItemIndex(this._element.querySelector(pr)),
4218                    r = t.Event(s.SLIDE, {
4219                        relatedTarget: n,
4220                        direction: i,
4221                        from: f,
4222                        to: u
4223                    });
4224                return t(this._element).trigger(r), r
4225            }, n._setActiveIndicatorElement = function(n) {
4226                var r, i;
4227                this._indicatorsElement && (r = [].slice.call(this._indicatorsElement.querySelectorAll(le)), t(r).removeClass(w), i = this._indicatorsElement.children[this._getItemIndex(n)], i && t(i).addClass(w))
4228            }, n._slide = function(n, i) {
4229                var e, o, h, a = this,
4230                    f = this._element.querySelector(pr),
4231                    p = this._getItemIndex(f),
4232                    u = i || f && this._getItemByDirection(n, f),
4233                    b = this._getItemIndex(u),
4234                    v = Boolean(this._interval),
4235                    c, l, y;
4236                (h = n === bi ? (e = oe, o = se, ie) : (e = ee, o = he, re), u && t(u).hasClass(w)) ? this._isSliding = !1: !this._triggerSlideEvent(u, h).isDefaultPrevented() && f && u && (this._isSliding = !0, v && this.pause(), this._setActiveIndicatorElement(u), c = t.Event(s.SLID, {
4237                    relatedTarget: u,
4238                    direction: h,
4239                    from: p,
4240                    to: b
4241                }), t(this._element).hasClass(fe) ? (t(u).addClass(o), r.reflow(u), t(f).addClass(e), t(u).addClass(e), l = parseInt(u.getAttribute("data-interval"), 10), this._config.interval = l ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, l) : this._config.defaultInterval || this._config.interval, y = r.getTransitionDurationFromElement(f), t(f).one(r.TRANSITION_END, function() {
4242                    t(u).removeClass(e + " " + o).addClass(w);
4243                    t(f).removeClass(w + " " + o + " " + e);
4244                    a._isSliding = !1;
4245                    setTimeout(function() {
4246                        return t(a._element).trigger(c)
4247                    }, 0)
4248                }).emulateTransitionEnd(y)) : (t(f).removeClass(w), t(u).addClass(w), this._isSliding = !1, t(this._element).trigger(c)), v && this.cycle())
4249            }, i._jQueryInterface = function(n) {
4250                return this.each(function() {
4251                    var r = t(this).data(bt),
4252                        u = f({}, yr, t(this).data()),
4253                        e;
4254                    if ("object" == typeof n && (u = f({}, u, n)), e = "string" == typeof n ? n : u.slide, r || (r = new i(this, u), t(this).data(bt, r)), "number" == typeof n) r.to(n);
4255                    else if ("string" == typeof e) {
4256                        if ("undefined" == typeof r[e]) throw new TypeError('No method named "' + e + '"');
4257                        r[e]()
4258                    } else u.interval && u.ride && (r.pause(), r.cycle())
4259                })
4260            }, i._dataApiClickHandler = function(n) {
4261                var s = r.getSelectorFromElement(this),
4262                    u, o, e;
4263                s && (u = t(s)[0], u && t(u).hasClass(ue) && (o = f({}, t(u).data(), t(this).data()), e = this.getAttribute("data-slide-to"), e && (o.interval = !1), i._jQueryInterface.call(t(u), o), e && t(u).data(bt).to(e), n.preventDefault()))
4264            }, l(i, null, [{
4265                key: "VERSION",
4266                get: function() {
4267                    return "4.3.1"
4268                }
4269            }, {
4270                key: "Default",
4271                get: function() {
4272                    return yr
4273                }
4274            }]), i
4275        }();
4276    t(document).on(s.CLICK_DATA_API, "[data-slide], [data-slide-to]", ut._dataApiClickHandler);
4277    t(window).on(s.LOAD_DATA_API, function() {
4278        for (var i, r = [].slice.call(document.querySelectorAll(we)), n = 0, u = r.length; n < u; n++) i = t(r[n]), ut._jQueryInterface.call(i, i.data())
4279    });
4280    t.fn[rt] = ut._jQueryInterface;
4281    t.fn[rt].Constructor = ut;
4282    t.fn[rt].noConflict = function() {
4283        return t.fn[rt] = ne, ut._jQueryInterface
4284    };
4285    var ft = "collapse",
4286        b = "bs.collapse",
4287        kt = "." + b,
4288        be = t.fn[ft],
4289        wr = {
4290            toggle: !0,
4291            parent: ""
4292        },
4293        ke = {
4294            toggle: "boolean",
4295            parent: "(string|element)"
4296        },
4297        dt = {
4298            SHOW: "show" + kt,
4299            SHOWN: "shown" + kt,
4300            HIDE: "hide" + kt,
4301            HIDDEN: "hidden" + kt,
4302            CLICK_DATA_API: "click" + kt + ".data-api"
4303        },
4304        k = "show",
4305        gt = "collapse",
4306        di = "collapsing",
4307        br = "collapsed",
4308        cu = "width",
4309        de = "height",
4310        ge = ".show, .collapsing",
4311        lu = '[data-toggle="collapse"]',
4312        ni = function() {
4313            function i(n, t) {
4314                this._isTransitioning = !1;
4315                this._element = n;
4316                this._config = this._getConfig(t);
4317                this._triggerArray = [].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#' + n.id + '"],[data-toggle="collapse"][data-target="#' + n.id + '"]'));
4318                for (var f = [].slice.call(document.querySelectorAll(lu)), i = 0, o = f.length; i < o; i++) {
4319                    var e = f[i],
4320                        u = r.getSelectorFromElement(e),
4321                        s = [].slice.call(document.querySelectorAll(u)).filter(function(t) {
4322                            return t === n
4323                        });
4324                    null !== u && 0 < s.length && (this._selector = u, this._triggerArray.push(e))
4325                }
4326                this._parent = this._config.parent ? this._getParent() : null;
4327                this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray);
4328                this._config.toggle && this.toggle()
4329            }
4330            var n = i.prototype;
4331            return n.toggle = function() {
4332                t(this._element).hasClass(k) ? this.hide() : this.show()
4333            }, n.show = function() {
4334                var n, e, u = this,
4335                    o, f, s, h;
4336                this._isTransitioning || t(this._element).hasClass(k) || (this._parent && 0 === (n = [].slice.call(this._parent.querySelectorAll(ge)).filter(function(n) {
4337                    return "string" == typeof u._config.parent ? n.getAttribute("data-parent") === u._config.parent : n.classList.contains(gt)
4338                })).length && (n = null), n && (e = t(n).not(this._selector).data(b)) && e._isTransitioning) || (o = t.Event(dt.SHOW), (t(this._element).trigger(o), o.isDefaultPrevented()) || (n && (i._jQueryInterface.call(t(n).not(this._selector), "hide"), e || t(n).data(b, null)), f = this._getDimension(), t(this._element).removeClass(gt).addClass(di), this._element.style[f] = 0, this._triggerArray.length && t(this._triggerArray).removeClass(br).attr("aria-expanded", !0), this.setTransitioning(!0), s = "scroll" + (f[0].toUpperCase() + f.slice(1)), h = r.getTransitionDurationFromElement(this._element), t(this._element).one(r.TRANSITION_END, function() {
4339                    t(u._element).removeClass(di).addClass(gt).addClass(k);
4340                    u._element.style[f] = "";
4341                    u.setTransitioning(!1);
4342                    t(u._element).trigger(dt.SHOWN)
4343                }).emulateTransitionEnd(h), this._element.style[f] = this._element[s] + "px"))
4344            }, n.hide = function() {
4345                var s = this,
4346                    u, n, f, i, e, o, h;
4347                if (!this._isTransitioning && t(this._element).hasClass(k) && (u = t.Event(dt.HIDE), t(this._element).trigger(u), !u.isDefaultPrevented())) {
4348                    if (n = this._getDimension(), this._element.style[n] = this._element.getBoundingClientRect()[n] + "px", r.reflow(this._element), t(this._element).addClass(di).removeClass(gt).removeClass(k), f = this._triggerArray.length, 0 < f)
4349                        for (i = 0; i < f; i++) e = this._triggerArray[i], o = r.getSelectorFromElement(e), null !== o && (t([].slice.call(document.querySelectorAll(
4349o))).hasClass(k) || t(e).addClass(br).attr("aria-expanded", !1));
4350                    this.setTransitioning(!0);
4351                    this._element.style[n] = "";
4352                    h = r.getTransitionDurationFromElement(this._element);
4353                    t(this._element).one(r.TRANSITION_END, function() {
4354                        s.setTransitioning(!1);
4355                        t(s._element).removeClass(di).addClass(gt).trigger(dt.HIDDEN)
4356                    }).emulateTransitionEnd(h)
4357                }
4358            }, n.setTransitioning = function(n) {
4359                this._isTransitioning = n
4360            }, n.dispose = function() {
4361                t.removeData(this._element, b);
4362                this._config = null;
4363                this._parent = null;
4364                this._element = null;
4365                this._triggerArray = null;
4366                this._isTransitioning = null
4367            }, n._getConfig = function(n) {
4368                return (n = f({}, wr, n)).toggle = Boolean(n.toggle), r.typeCheckConfig(ft, n, ke), n
4369            }, n._getDimension = function() {
4370                return t(this._element).hasClass(cu) ? cu : de
4371            }, n._getParent = function() {
4372                var n, e = this,
4373                    u, f;
4374                return r.isElement(this._config.parent) ? (n = this._config.parent, "undefined" != typeof this._config.parent.jquery && (n = this._config.parent[0])) : n = document.querySelector(this._config.parent), u = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]', f = [].slice.call(n.querySelectorAll(u)), t(f).each(function(n, t) {
4375                    e._addAriaAndCollapsedClass(i._getTargetFromElement(t), [t])
4376                }), n
4377            }, n._addAriaAndCollapsedClass = function(n, i) {
4378                var r = t(n).hasClass(k);
4379                i.length && t(i).toggleClass(br, !r).attr("aria-expanded", r)
4380            }, i._getTargetFromElement = function(n) {
4381                var t = r.getSelectorFromElement(n);
4382                return t ? document.querySelector(t) : null
4383            }, i._jQueryInterface = function(n) {
4384                return this.each(function() {
4385                    var u = t(this),
4386                        r = u.data(b),
4387                        e = f({}, wr, u.data(), "object" == typeof n && n ? n : {});
4388                    if (!r && e.toggle && /show|hide/.test(n) && (e.toggle = !1), r || (r = new i(this, e), u.data(b, r)), "string" == typeof n) {
4389                        if ("undefined" == typeof r[n]) throw new TypeError('No method named "' + n + '"');
4390                        r[n]()
4391                    }
4392                })
4393            }, l(i, null, [{
4394                key: "VERSION",
4395                get: function() {
4396                    return "4.3.1"
4397                }
4398            }, {
4399                key: "Default",
4400                get: function() {
4401                    return wr
4402                }
4403            }]), i
4404        }();
4405    t(document).on(dt.CLICK_DATA_API, lu, function(n) {
4406        "A" === n.currentTarget.tagName && n.preventDefault();
4407        var i = t(this),
4408            u = r.getSelectorFromElement(this),
4409            f = [].slice.call(document.querySelectorAll(u));
4410        t(f).each(function() {
4411            var n = t(this),
4412                r = n.data(b) ? "toggle" : i.data();
4413            ni._jQueryInterface.call(n, r)
4414        })
4415    });
4416    t.fn[ft] = ni._jQueryInterface;
4417    t.fn[ft].Constructor = ni;
4418    t.fn[ft].noConflict = function() {
4419        return t.fn[ft] = be, ni._jQueryInterface
4420    };
4421    var et = "dropdown",
4422        ti = "bs.dropdown",
4423        y = "." + ti,
4424        kr = ".data-api",
4425        no = t.fn[et],
4426        to = new RegExp("38|40|27"),
4427        e = {
4428            HIDE: "hide" + y,
4429            HIDDEN: "hidden" + y,
4430            SHOW: "show" + y,
4431            SHOWN: "shown" + y,
4432            CLICK: "click" + y,
4433            CLICK_DATA_API: "click" + y + kr,
4434            KEYDOWN_DATA_API: "keydown" + y + kr,
4435            KEYUP_DATA_API: "keyup" + y + kr
4436        },
4437        gi = "disabled",
4438        h = "show",
4439        io = "dropup",
4440        ro = "dropright",
4441        uo = "dropleft",
4442        au = "dropdown-menu-right",
4443        fo = "position-static",
4444        nr = '[data-toggle="dropdown"]',
4445        dr = ".dropdown-menu",
4446        eo = ".navbar-nav",
4447        oo = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",
4448        so = "top-start",
4449        ho = "top-end",
4450        co = "bottom-start",
4451        lo = "bottom-end",
4452        ao = "right-start",
4453        vo = "left-start",
4454        yo = {
4455            offset: 0,
4456            flip: !0,
4457            boundary: "scrollParent",
4458            reference: "toggle",
4459            display: "dynamic"
4460        },
4461        po = {
4462            offset: "(number|string|function)",
4463            flip: "boolean",
4464            boundary: "(string|element)",
4465            reference: "(string|element)",
4466            display: "string"
4467        },
4468        p = function() {
4469            function n(n, t) {
4470                this._element = n;
4471                this._popper = null;
4472                this._config = this._getConfig(t);
4473                this._menu = this._getMenuElement();
4474                this._inNavbar = this._detectNavbar();
4475                this._addEventListeners()
4476            }
4477            var u = n.prototype;
4478            return u.toggle = function() {
4479                var u, c, o, s, f;
4480                if (!this._element.disabled && !t(this._element).hasClass(gi) && (u = n._getParentFromElement(this._element), c = t(this._menu).hasClass(h), (n._clearMenus(), !c) && (o = {
4481                        relatedTarget: this._element
4482                    }, s = t.Event(e.SHOW, o), t(u).trigger(s), !s.isDefaultPrevented()))) {
4483                    if (!this._inNavbar) {
4484                        if ("undefined" == typeof i) throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");
4485                        f = this._element;
4486                        "parent" === this._config.reference ? f = u : r.isElement(this._config.reference) && (f = this._config.reference, "undefined" != typeof this._config.reference.jquery && (f = this._config.reference[0]));
4487                        "scrollParent" !== this._config.boundary && t(u).addClass(fo);
4488                        this._popper = new i(f, this._menu, this._getPopperConfig())
4489                    }
4490                    "ontouchstart" in document.documentElement && 0 === t(u).closest(eo).length && t(document.body).children().on("mouseover", null, t.noop);
4491                    this._element.focus();
4492                    this._element.setAttribute("aria-expanded", !0);
4493                    t(this._menu).toggleClass(h);
4494                    t(u).toggleClass(h).trigger(t.Event(e.SHOWN, o))
4495                }
4496            }, u.show = function() {
4497                if (!(this._element.disabled || t(this._element).hasClass(gi) || t(this._menu).hasClass(h))) {
4498                    var i = {
4499                            relatedTarget: this._element
4500                        },
4501                        r = t.Event(e.SHOW, i),
4502                        u = n._getParentFromElement(this._element);
4503                    t(u).trigger(r);
4504                    r.isDefaultPrevented() || (t(this._menu).toggleClass(h), t(u).toggleClass(h).trigger(t.Event(e.SHOWN, i)))
4505                }
4506            }, u.hide = function() {
4507                if (!this._element.disabled && !t(this._element).hasClass(gi) && t(this._menu).hasClass(h)) {
4508                    var i = {
4509                            relatedTarget: this._element
4510                        },
4511                        r = t.Event(e.HIDE, i),
4512                        u = n._getParentFromElement(this._element);
4513                    t(u).trigger(r);
4514                    r.isDefaultPrevented() || (t(this._menu).toggleClass(h), t(u).toggleClass(h).trigger(t.Event(e.HIDDEN, i)))
4515                }
4516            }, u.dispose = function() {
4517                t.removeData(this._element, ti);
4518                t(this._element).off(y);
4519                this._element = null;
4520                (this._menu = null) !== this._popper && (this._popper.destroy(), this._popper = null)
4521            }, u.update = function() {
4522                this._inNavbar = this._detectNavbar();
4523                null !== this._popper && this._popper.scheduleUpdate()
4524            }, u._addEventListeners = function() {
4525                var n = this;
4526                t(this._element).on(e.CLICK, function(t) {
4527                    t.preventDefault();
4528                    t.stopPropagation();
4529                    n.toggle()
4530                })
4531            }, u._getConfig = function(n) {
4532                return n = f({}, this.constructor.Default, t(this._element).data(), n), r.typeCheckConfig(et, n, this.constructor.DefaultType), n
4533            }, u._getMenuElement = function() {
4534                if (!this._menu) {
4535                    var t = n._getParentFromElement(this._element);
4536                    t && (this._menu = t.querySelector(dr))
4537                }
4538                return this._menu
4539            }, u._getPlacement = function() {
4540                var i = t(this._element.parentNode),
4541                    n = co;
4542                return i.hasClass(io) ? (n = so, t(this._menu).hasClass(au) && (n = ho)) : i.hasClass(ro) ? n = ao : i.hasClass(uo) ? n = vo : t(this._menu).hasClass(au) && (n = lo), n
4543            }, u._detectNavbar = function() {
4544                return 0 < t(this._element).closest(".navbar").length
4545            }, u._getOffset = function() {
4546                var t = this,
4547                    n = {};
4548                return "function" == typeof this._config.offset ? n.fn = function(n) {
4549                    return n.offsets = f({}, n.offsets, t._config.offset(n.offsets, t._element) || {}), n
4550                } : n.offset = this._config.offset, n
4551            }, u._getPopperConfig = function() {
4552                var n = {
4553                    placement: this._getPlacement(),
4554                    modifiers: {
4555                        offset: this._getOffset(),
4556                        flip: {
4557                            enabled: this._config.flip
4558                        },
4559                        preventOverflow: {
4560                            boundariesElement: this._config.boundary
4561                        }
4562                    }
4563                };
4564                return "static" === this._config.display && (n.modifiers.applyStyle = {
4565                    enabled: !1
4566                }), n
4567            }, n._jQueryInterface = function(i) {
4568                return this.each(function() {
4569                    var r = t(this).data(ti);
4570                    if (r || (r = new n(this, "object" == typeof i ? i : null), t(this).data(ti, r)), "string" == typeof i) {
4571                        if ("undefined" == typeof r[i]) throw new TypeError('No method n
4571amed "' + i + '"');
4572                        r[i]()
4573                    }
4574                })
4575            }, n._clearMenus = function(i) {
4576                var l, s;
4577                if (!i || 3 !== i.which && ("keyup" !== i.type || 9 === i.which))
4578                    for (var u = [].slice.call(document.querySelectorAll(nr)), r = 0, a = u.length; r < a; r++) {
4579                        var f = n._getParentFromElement(u[r]),
4580                            c = t(u[r]).data(ti),
4581                            o = {
4582                                relatedTarget: u[r]
4583                            };
4584                        (i && "click" === i.type && (o.clickEvent = i), c) && (l = c._menu, !t(f).hasClass(h) || i && ("click" === i.type && /input|textarea/i.test(i.target.tagName) || "keyup" === i.type && 9 === i.which) && t.contains(f, i.target) || (s = t.Event(e.HIDE, o), t(f).trigger(s), s.isDefaultPrevented() || ("ontouchstart" in document.documentElement && t(document.body).children().off("mouseover", null, t.noop), u[r].setAttribute("aria-expanded", "false"), t(l).removeClass(h), t(f).removeClass(h).trigger(t.Event(e.HIDDEN, o)))))
4585                    }
4586            }, n._getParentFromElement = function(n) {
4587                var t, i = r.getSelectorFromElement(n);
4588                return i && (t = document.querySelector(i)), t || n.parentNode
4589            }, n._dataApiKeydownHandler = function(i) {
4590                var f, e, u, r, o;
4591                (/input|textarea/i.test(i.target.tagName) ? 32 === i.which || 27 !== i.which && (40 !== i.which && 38 !== i.which || t(i.target).closest(dr).length) : !to.test(i.which)) || (i.preventDefault(), i.stopPropagation(), this.disabled || t(this).hasClass(gi)) || (f = n._getParentFromElement(this), e = t(f).hasClass(h), e && (!e || 27 !== i.which && 32 !== i.which) ? (u = [].slice.call(f.querySelectorAll(oo)), 0 !== u.length && (r = u.indexOf(i.target), 38 === i.which && 0 < r && r--, 40 === i.which && r < u.length - 1 && r++, r < 0 && (r = 0), u[r].focus())) : (27 === i.which && (o = f.querySelector(nr), t(o).trigger("focus")), t(this).trigger("click")))
4592            }, l(n, null, [{
4593                key: "VERSION",
4594                get: function() {
4595                    return "4.3.1"
4596                }
4597            }, {
4598                key: "Default",
4599                get: function() {
4600                    return yo
4601                }
4602            }, {
4603                key: "DefaultType",
4604                get: function() {
4605                    return po
4606                }
4607            }]), n
4608        }();
4609    t(document).on(e.KEYDOWN_DATA_API, nr, p._dataApiKeydownHandler).on(e.KEYDOWN_DATA_API, dr, p._dataApiKeydownHandler).on(e.CLICK_DATA_API + " " + e.KEYUP_DATA_API, p._clearMenus).on(e.CLICK_DATA_API, nr, function(n) {
4610        n.preventDefault();
4611        n.stopPropagation();
4612        p._jQueryInterface.call(t(this), "toggle")
4613    }).on(e.CLICK_DATA_API, ".dropdown form", function(n) {
4614        n.stopPropagation()
4615    });
4616    t.fn[et] = p._jQueryInterface;
4617    t.fn[et].Constructor = p;
4618    t.fn[et].noConflict = function() {
4619        return t.fn[et] = no, p._jQueryInterface
4620    };
4621    var ot = "modal",
4622        ii = "bs.modal",
4623        c = "." + ii,
4624        wo = t.fn[ot],
4625        gr = {
4626            backdrop: !0,
4627            keyboard: !0,
4628            focus: !0,
4629            show: !0
4630        },
4631        bo = {
4632            backdrop: "(boolean|string)",
4633            keyboard: "boolean",
4634            focus: "boolean",
4635            show: "boolean"
4636        },
4637        u = {
4638            HIDE: "hide" + c,
4639            HIDDEN: "hidden" + c,
4640            SHOW: "show" + c,
4641            SHOWN: "shown" + c,
4642            FOCUSIN: "focusin" + c,
4643            RESIZE: "resize" + c,
4644            CLICK_DISMISS: "click.dismiss" + c,
4645            KEYDOWN_DISMISS: "keydown.dismiss" + c,
4646            MOUSEUP_DISMISS: "mouseup.dismiss" + c,
4647            MOUSEDOWN_DISMISS: "mousedown.dismiss" + c,
4648            CLICK_DATA_API: "click" + c + ".data-api"
4649        },
4650        ko = "modal-dialog-scrollable",
4651        go = "modal-scrollbar-measure",
4652        ns = "modal-backdrop",
4653        vu = "modal-open",
4654        st = "fade",
4655        tr = "show",
4656        ts = ".modal-dialog",
4657        is = ".modal-body",
4658        rs = '[data-dismiss="modal"]',
4659        yu = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
4660        pu = ".sticky-top",
4661        ri = function() {
4662            function i(n, t) {
4663                this._config = this._getConfig(t);
4664                this._element = n;
4665                this._dialog = n.querySelector(ts);
4666                this._backdrop = null;
4667                this._isShown = !1;
4668                this._isBodyOverflowing = !1;
4669                this._ignoreBackdropClick = !1;
4670                this._isTransitioning = !1;
4671                this._scrollbarWidth = 0
4672            }
4673            var n = i.prototype;
4674            return n.toggle = function(n) {
4675                return this._isShown ? this.hide() : this.show(n)
4676            }, n.show = function(n) {
4677                var i = this,
4678                    r;
4679                this._isShown || this._isTransitioning || (t(this._element).hasClass(st) && (this._isTransitioning = !0), r = t.Event(u.SHOW, {
4680                    relatedTarget: n
4681                }), t(this._element).trigger(r), this._isShown || r.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), t(this._element).on(u.CLICK_DISMISS, rs, function(n) {
4682                    return i.hide(n)
4683                }), t(this._dialog).on(u.MOUSEDOWN_DISMISS, function() {
4684                    t(i._element).one(u.MOUSEUP_DISMISS, function(n) {
4685                        t(n.target).is(i._element) && (i._ignoreBackdropClick = !0)
4686                    })
4687                }), this._showBackdrop(function() {
4688                    return i._showElement(n)
4689                })))
4690            }, n.hide = function(n) {
4691                var o = this,
4692                    i, f, e;
4693                (n && n.preventDefault(), this._isShown && !this._isTransitioning) && (i = t.Event(u.HIDE), (t(this._element).trigger(i), this._isShown && !i.isDefaultPrevented()) && (this._isShown = !1, f = t(this._element).hasClass(st), (f && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), t(document).off(u.FOCUSIN), t(this._element).removeClass(tr), t(this._element).off(u.CLICK_DISMISS), t(this._dialog).off(u.MOUSEDOWN_DISMISS), f) ? (e = r.getTransitionDurationFromElement(this._element), t(this._element).one(r.TRANSITION_END, function(n) {
4694                    return o._hideModal(n)
4695                }).emulateTransitionEnd(e)) : this._hideModal()))
4696            }, n.dispose = function() {
4697                [window, this._element, this._dialog].forEach(function(n) {
4698                    return t(n).off(c)
4699                });
4700                t(document).off(u.FOCUSIN);
4701                t.removeData(this._element, ii);
4702                this._config = null;
4703                this._element = null;
4704                this._dialog = null;
4705                this._backdrop = null;
4706                this._isShown = null;
4707                this._isBodyOverflowing = null;
4708                this._ignoreBackdropClick = null;
4709                this._isTransitioning = null;
4710                this._scrollbarWidth = null
4711            }, n.handleUpdate = function() {
4712                this._adjustDialog()
4713            }, n._getConfig = function(n) {
4714                return n = f({}, gr, n), r.typeCheckConfig(ot, n, bo), n
4715            }, n._showElement = function(n) {
4716                var i = this,
4717                    e = t(this._element).hasClass(st),
4718                    o, f, s;
4719                this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element);
4720                this._element.style.display = "block";
4721                this._element.removeAttribute("aria-hidden");
4722                this._element.setAttribute("aria-modal", !0);
4723                t(this._dialog).hasClass(ko) ? this._dialog.querySelector(is).scrollTop = 0 : this._element.scrollTop = 0;
4724                e && r.reflow(this._element);
4725                t(this._element).addClass(tr);
4726                this._config.focus && this._enforceFocus();
4727                o = t.Event(u.SHOWN, {
4728                    relatedTarget: n
4729                });
4730                f = function() {
4731                    i._config.focus && i._element.focus();
4732                    i._isTransitioning = !1;
4733                    t(i._element).trigger(o)
4734                };
4735                e ? (s = r.getTransitionDurationFromElement(this._dialog), t(this._dialog).one(r.TRANSITION_END, f).emulateTransitionEnd(s)) : f()
4736            }, n._enforceFocus = function() {
4737                var n = this;
4738                t(document).off(u.FOCUSIN).on(u.FOCUSIN, function(i) {
4739                    document !== i.target && n._element !== i.target && 0 === t(n._element).has(i.target).length && n._element.focus()
4740                })
4741            }, n._setEscapeEvent = function() {
4742                var n = this;
4743                this._isShown && this._config.keyboard ? t(this._element).on(u.KEYDOWN_DISMISS, function(t) {
4744                    27 === t.which && (t.preventDefault(), n.hide())
4745                }) : this._isShown || t(this._element).off(u.KEYDOWN_DISMISS)
4746            }, n._setResizeEvent = function() {
4747                var n = this;
4748                this._isShown ? t(window).on(u.RESIZE, function(t) {
4749                    return n.handleUpdate(t)
4750                }) : t(window).off(u.RESIZE)
4751            }, n._hideModal = function() {
4752                var n = this;
4753                this._element.style.display = "none";
4754                this._element.setAttribute("aria-hidden", !0);
4755                this._element.removeAttribute("aria-modal");
4756                this._isTransitioning = !1;
4757                this._showBackdrop(function() {
4758                    t(document.body).removeClass(vu);
4759                    n._resetAdjustments();
4760                    n._resetScrollbar();
4761                    t(n._element).trigger(u.HIDDEN)
4762                })
4763            }, n._removeBackdrop = function() {
4764                this._backdrop && (t(this._backdrop).remove(), this._backdrop = null)
4765            }, n._showBackdrop = function(n) {
4766                var i = this,
4767                    f = t(this._element).hasClass(st) ? st : "",
4768                    o, e, s;
4769                if (this._isShown && this._config.backdrop) {
4770                    if (this._backdrop = document.createElement("div"), this._backdrop.className = ns, f && this._backdrop.classList.add(f), t(this._backdrop).appendTo(document.body), t(this._element).on(u.CLICK_DISMISS, function(n) {
4771                            i._ignoreBackdropClick ? i._ignoreBackdropClick = !1 : n.target === n.currentTarget && ("static" === i._config.backdrop ? i._element.focus() : i.hide())
4772                        }), f && r.reflow(this._backdrop), t(this._backdrop).addClass(tr), !n) return;
4773                    if (!f) return void n();
4774                    o = r.getTransitionDurationFromElement(this._backdrop);
4775                    t(this._backdrop).one(r.TRANSITION_END, n).emulateTransitionEnd(o)
4776                } else !this._isShown && this._backdrop ? (t(this._backdrop).removeClass(tr), e = function() {
4777                    i._removeBackdrop();
4778                    n && n()
4779                }, t(this._element).hasClass(st) ? (s = r.getTransitionDurationFromElement(this._backdrop), t(this._backdrop).one(r.TRANSITION_END, e).emulateTransitionEnd(s)) : e()) : n && n()
4780            }, n._adjustDialog = function() {
4781                var n = this._element.scrollHeight > document.documentElement.clientHeight;
4782                !this._isBodyOverflowing && n && (this._element.style.paddingLeft = this._scrollbarWidth + "px");
4783                this._isBodyOverflowing && !n && (this._element.style.paddingRight = this._scrollbarWidth + "px")
4784            }, n._resetAdjustments = function() {
4785                this._element.style.paddingLeft = "";
4786                this._element.style.paddingRight = ""
4787            }, n._checkScrollbar = function() {
4788                var n = document.body.getBoundingClientRect();
4789                this._isBodyOverflowing = n.left + n.right < window.innerWidth;
4790                this._scrollbarWidth = this._getScrollbarWidth()
4791            }, n._setScrollbar = function() {
4792                var n = this,
4793                    i, r, u, f;
4794                this._isBodyOverflowing && (i = [].slice.call(document.querySelectorAll(yu)), r = [].slice.call(document.querySelectorAll(pu)), t(i).each(function(i, r) {
4795                    var u = r.style.paddingRight,
4796                        f = t(r).css("padding-right");
4797                    t(r).data("padding-right", u).css("padding-right", parseFloat(f) + n._scrollbarWidth + "px")
4798                }), t(r).each(function(i, r) {
4799                    var u = r.style.marginRight,
4800                        f = t(r).css("margin-right");
4801                    t(r).data("margin-right", u).css("margin-right", parseFloat(f) - n._scrollbarWidth + "px")
4802                }), u = document.body.style.paddingRight, f = t(document.body).css("padding-right"), t(document.body).data("padding-right", u).css("padding-right", parseFloat(f) + this._scrollbarWidth + "px"));
4803                t(document.body).addClass(vu)
4804            }, n._resetScrollbar = function() {
4805                var r = [].slice.call(document.querySelectorAll(yu)),
4806                    n, i;
4807                t(r).each(function(n, i) {
4808                    var r = t(i).data("padding-right");
4809                    t(i).removeData("padding-right");
4810                    i.style.paddingRight = r || ""
4811                });
4812                n = [].slice.call(document.querySelectorAll("" + pu));
4813                t(n).each(function(n, i) {
4814                    var r = t(i).data("margin-right");
4815                    "undefined" != typeof r && t(i).css("margin-right", r).removeData("margin-right")
4816                });
4817                i = t(document.body).data("padding-right");
4818                t(document.body).removeData("padding-right");
4819                document.body.style.paddingRight = i || ""
4820            }, n._getScrollbarWidth = function() {
4821                var n = document.createElement("div"),
4822                    t;
4823                return n.className = go, document.body.appendChild(n), t = n.getBoundingClientRect().width - n.clientWidth, document.body.removeChild(n), t
4824            }, i._jQueryInterface = function(n, r) {
4825                return this.each(function() {
4826                    var u = t(this).data(ii),
4827                        e = f({}, gr, t(this).data(), "object" == typeof n && n ? n : {});
4828                    if (u || (u = new i(this, e), t(this).data(ii, u)), "string" == typeof n) {
4829                        if ("undefined" == typeof u[n]) throw new TypeError('No method n
4829amed "' + n + '"');
4830                        u[n](r)
4831                    } else e.show && u.show(r)
4832                })
4833            }, l(i, null, [{
4834                key: "VERSION",
4835                get: function() {
4836                    return "4.3.1"
4837                }
4838            }, {
4839                key: "Default",
4840                get: function() {
4841                    return gr
4842                }
4843            }]), i
4844        }();
4845    t(document).on(u.CLICK_DATA_API, '[data-toggle="modal"]', function(n) {
4846        var i, e = this,
4847            o = r.getSelectorFromElement(this),
4848            s, h;
4849        o && (i = document.querySelector(o));
4850        s = t(i).data(ii) ? "toggle" : f({}, t(i).data(), t(this).data());
4851        "A" !== this.tagName && "AREA" !== this.tagName || n.preventDefault();
4852        h = t(i).one(u.SHOW, function(n) {
4853            n.isDefaultPrevented() || h.one(u.HIDDEN, function() {
4854                t(e).is(":visible") && e.focus()
4855            })
4856        });
4857        ri._jQueryInterface.call(t(i), s, this)
4858    });
4859    t.fn[ot] = ri._jQueryInterface;
4860    t.fn[ot].Constructor = ri;
4861    t.fn[ot].noConflict = function() {
4862        return t.fn[ot] = wo, ri._jQueryInterface
4863    };
4864    var us = ["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"],
4865        fs = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,
4866        es = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;
4867    var d = "tooltip",
4868        ir = "bs.tooltip",
4869        a = "." + ir,
4870        os = t.fn[d],
4871        bu = "bs-tooltip",
4872        ss = new RegExp("(^|\\s)" + bu + "\\S+", "g"),
4873        hs = ["sanitize", "whiteList", "sanitizeFn"],
4874        cs = {
4875            animation: "boolean",
4876            template: "string",
4877            title: "(string|element|function)",
4878            trigger: "string",
4879            delay: "(number|object)",
4880            html: "boolean",
4881            selector: "(string|boolean)",
4882            placement: "(string|function)",
4883            offset: "(number|string|function)",
4884            container: "(string|element|boolean)",
4885            fallbackPlacement: "(string|array)",
4886            boundary: "(string|element)",
4887            sanitize: "boolean",
4888            sanitizeFn: "(null|function)",
4889            whiteList: "object"
4890        },
4891        ls = {
4892            AUTO: "auto",
4893            TOP: "top",
4894            RIGHT: "right",
4895            BOTTOM: "bottom",
4896            LEFT: "left"
4897        },
4898        as = {
4899            animation: !0,
4900            template: '<div class="tooltip" role="tooltip"><div class="arrow"><\/div><div class="tooltip-inner"><\/div><\/div>',
4901            trigger: "hover focus",
4902            title: "",
4903            delay: 0,
4904            html: !1,
4905            selector: !1,
4906            placement: "top",
4907            offset: 0,
4908            container: !1,
4909            fallbackPlacement: "flip",
4910            boundary: "scrollParent",
4911            sanitize: !0,
4912            sanitizeFn: null,
4913            whiteList: {
4914                "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
4915                a: ["target", "href", "title", "rel"],
4916                area: [],
4917                b: [],
4918                br: [],
4919                col: [],
4920                code: [],
4921                div: [],
4922                em: [],
4923                hr: [],
4924                h1: [],
4925                h2: [],
4926                h3: [],
4927                h4: [],
4928                h5: [],
4929                h6: [],
4930                i: [],
4931                img: ["src", "alt", "title", "width", "height"],
4932                li: [],
4933                ol: [],
4934                p: [],
4935                pre: [],
4936                s: [],
4937                small: [],
4938                span: [],
4939                sub: [],
4940                sup: [],
4941                strong: [],
4942                u: [],
4943                ul: []
4944            }
4945        },
4946        ui = "show",
4947        nu = "out",
4948        vs = {
4949            HIDE: "hide" + a,
4950            HIDDEN: "hidden" + a,
4951            SHOW: "show" + a,
4952            SHOWN: "shown" + a,
4953            INSERTED: "inserted" + a,
4954            CLICK: "click" + a,
4955            FOCUSIN: "focusin" + a,
4956            FOCUSOUT: "focusout" + a,
4957            MOUSEENTER: "mouseenter" + a,
4958            MOUSELEAVE: "mouseleave" + a
4959        },
4960        fi = "fade",
4961        ei = "show",
4962        ys = ".tooltip-inner",
4963        ps = ".arrow",
4964        oi = "hover",
4965        tu = "focus",
4966        ws = "click",
4967        bs = "manual",
4968        g = function() {
4969            function u(n, t) {
4970                if ("undefined" == typeof i) throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");
4971                this._isEnabled = !0;
4972                this._timeout = 0;
4973                this._hoverState = "";
4974                this._activeTrigger = {};
4975                this._popper = null;
4976                this.element = n;
4977                this.config = this._getConfig(t);
4978                this.tip = null;
4979                this._setListeners()
4980            }
4981            var n = u.prototype;
4982            return n.enable = function() {
4983                this._isEnabled = !0
4984            }, n.disable = function() {
4985                this._isEnabled = !1
4986            }, n.toggleEnabled = function() {
4987                this._isEnabled = !this._isEnabled
4988            }, n.toggle = function(n) {
4989                if (this._isEnabled)
4990                    if (n) {
4991                        var r = this.constructor.DATA_KEY,
4992                            i = t(n.currentTarget).data(r);
4993                        i || (i = new this.constructor(n.currentTarget, this._getDelegateConfig()), t(n.currentTarget).data(r, i));
4994                        i._activeTrigger.click = !i._activeTrigger.click;
4995                        i._isWithActiveTrigger() ? i._enter(null, i) : i._leave(null, i)
4996                    } else {
4997                        if (t(this.getTipElement()).hasClass(ei)) return void this._leave(null, this);
4998                        this._enter(null, this)
4999                    }
5000            }, n.dispose = function() {
5001                clearTimeout(this._timeout);
5002                t.removeData(this.element, this.constructor.DATA_KEY);
5003                t(this.element).off(this.constructor.EVENT_KEY);
5004                t(this.element).closest(".modal").off("hide.bs.modal");
5005                this.tip && t(this.tip).remove();
5006                this._isEnabled = null;
5007                this._timeout = null;
5008                this._hoverState = null;
5009                (this._activeTrigger = null) !== this._popper && this._popper.destroy();
5010                this._popper = null;
5011                this.element = null;
5012                this.config = null;
5013                this.tip = null
5014            }, n.show = function() {
5015                var n = this,
5016                    f, e, c, u, o, l, s, a, h, v;
5017                if ("none" === t(this.element).css("display")) throw new Error("Please use show on visible elements");
5018                if (f = t.Event(this.constructor.Event.SHOW), this.isWithContent() && this._isEnabled) {
5019                    if (t(this.element).trigger(f), e = r.findShadowRoot(this.element), c = t.contains(null !== e ? e : this.element.ownerDocument.documentElement, this.element), f.isDefaultPrevented() || !c) return;
5020                    u = this.getTipElement();
5021                    o = r.getUID(this.constructor.NAME);
5022                    u.setAttribute("id", o);
5023                    this.element.setAttribute("aria-describedby", o);
5024                    this.setContent();
5025                    this.config.animation && t(u).addClass(fi);
5026                    l = "function" == typeof this.config.placement ? this.config.placement.call(this, u, this.element) : this.config.placement;
5027                    s = this._getAttachment(l);
5028                    this.addAttachmentClass(s);
5029                    a = this._getContainer();
5030                    t(u).data(this.constructor.DATA_KEY, this);
5031                    t.contains(this.element.ownerDocument.documentElement, this.tip) || t(u).appendTo(a);
5032                    t(this.element).trigger(this.constructor.Event.INSERTED);
5033                    this._popper = new i(this.element, u, {
5034                        placement: s,
5035                        modifiers: {
5036                            offset: this._getOffset(),
5037                            flip: {
5038                                behavior: this.config.fallbackPlacement
5039                            },
5040                            arrow: {
5041                                element: ps
5042                            },
5043                            preventOverflow: {
5044                                boundariesElement: this.config.boun
5044dary
5045                            }
5046                        },
5047                        onCreate: function(t) {
5048                            t.originalPlacement !== t.placement && n._handlePopperPlacementChange(t)
5049                        },
5050                        onUpdate: function(t) {
5051                            return n._handlePopperPlacementChange(t)
5052                        }
5053                    });
5054                    t(u).addClass(ei);
5055                    "ontouchstart" in document.documentElement && t(document.body).children().on("mouseover", null, t.noop);
5056                    h = function() {
5057                        n.config.animation && n._fixTransition();
5058                        var i = n._hoverState;
5059                        n._hoverState = null;
5060                        t(n.element).trigger(n.constructor.Event.SHOWN);
5061                        i === nu && n._leave(null, n)
5062                    };
5063                    t(this.tip).hasClass(fi) ? (v = r.getTransitionDurationFromElement(this.tip), t(this.tip).one(r.TRANSITION_END, h).emulateTransitionEnd(v)) : h()
5064                }
5065            }, n.hide = function(n) {
5066                var i = this,
5067                    u = this.getTipElement(),
5068                    f = t.Event(this.constructor.Event.HIDE),
5069                    e = function() {
5070                        i._hoverState !== ui && u.parentNode && u.parentNode.removeChild(u);
5071                        i._cleanTipClass();
5072                        i.element.removeAttribute("aria-describedby");
5073                        t(i.element).trigger(i.constructor.Event.HIDDEN);
5074                        null !== i._popper && i._popper.destroy();
5075                        n && n()
5076                    },
5077                    o;
5078                (t(this.element).trigger(f), f.isDefaultPrevented()) || ((t(u).removeClass(ei), "ontouchstart" in document.documentElement && t(document.body).children().off("mouseover", null, t.noop), this._activeTrigger[ws] = !1, this._activeTrigger[tu] = !1, this._activeTrigger[oi] = !1, t(this.tip).hasClass(fi)) ? (o = r.getTransitionDurationFromElement(u), t(u).one(r.TRANSITION_END, e).emulateTransitionEnd(o)) : e(), this._hoverState = "")
5079            }, n.update = function() {
5080                null !== this._popper && this._popper.scheduleUpdate()
5081            }, n.isWithContent = function() {
5082                return Boolean(this.getTitle())
5083            }, n.addAttachmentClass = function(n) {
5084                t(this.getTipElement()).addClass(bu + "-" + n)
5085            }, n.getTipElement = function() {
5086                return this.tip = this.tip || t(this.config.template)[0], this.tip
5087            }, n.setContent = function() {
5088                var n = this.getTipElement();
5089                this.setElementContent(t(n.querySelectorAll(ys)), this.getTitle());
5090                t(n).removeClass(fi + " " + ei)
5091            }, n.setElementContent = function(n, i) {
5092                "object" != typeof i || !i.nodeType && !i.jquery ? this.config.html ? (this.config.sanitize && (i = wu(i, this.config.whiteList, this.config.sanitizeFn)), n.html(i)) : n.text(i) : this.config.html ? t(i).parent().is(n) || n.empty().append(i) : n.text(t(i).text())
5093            }, n.getTitle = function() {
5094                var n = this.element.getAttribute("data-original-title");
5095                return n || (n = "function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), n
5096            }, n._getOffset = function() {
5097                var t = this,
5098                    n = {};
5099                return "function" == typeof this.config.offset ? n.fn = function(n) {
5100                    return n.offsets = f({}, n.offsets, t.config.offset(n.offsets, t.element) || {}), n
5101                } : n.offset = this.config.offset, n
5102            }, n._getContainer = function() {
5103                return !1 === this.config.container ? document.body : r.isElement(this.config.container) ? t(this.config.container) : t(document).find(this.config.container)
5104            }, n._getAttachment = function(n) {
5105                return ls[n.toUpperCase()]
5106            }, n._setListeners = function() {
5107                var n = this;
5108                this.config.trigger.split(" ").forEach(function(i) {
5109                    if ("click" === i) t(n.element).on(n.constructor.Event.CLICK, n.config.selector, function(t) {
5110                        return n.toggle(t)
5111                    });
5112                    else if (i !== bs) {
5113                        var r = i === oi ? n.constructor.Event.MOUSEENTER : n.constructor.Event.FOCUSIN,
5114                            u = i === oi ? n.constructor.Event.MOUSELEAVE : n.constructor.Event.FOCUSOUT;
5115                        t(n.element).on(r, n.config.selector, function(t) {
5116                            return n._enter(t)
5117                        }
5117).on(u, n.config.selector, function(t) {
5118                            return n._leave(t)
5119                        })
5120                    }
5121                });
5122                t(this.element).closest(".modal").on("hide.bs.modal", function() {
5123                    n.element && n.hide()
5124                });
5125                this.config.selector ? this.config = f({}, this.config, {
5126                    trigger: "manual",
5127                    selector: ""
5128                }) : this._fixTitle()
5129            }, n._fixTitle = function() {
5130                var n = typeof this.element.getAttribute("data-original-title");
5131                (this.element.getAttribute("title") || "string" !== n) && (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", ""))
5132            }, n._enter = function(n, i) {
5133                var r = this.constructor.DATA_KEY;
5134                (i = i || t(n.currentTarget).data(r)) || (i = new this.constructor(n.currentTarget, this._getDelegateConfig()), t(n.currentTarget).data(r, i));
5135                n && (i._activeTrigger["focusin" === n.type ? tu : oi] = !0);
5136                t(i.getTipElement()).hasClass(ei) || i._hoverState === ui ? i._hoverState = ui : (clearTimeout(i._timeout), i._hoverState = ui, i.config.delay && i.config.delay.show ? i._timeout = setTimeout(function() {
5137                    i._hoverState === ui && i.show()
5138                }, i.config.delay.show) : i.show())
5139            }, n._leave = function(n, i) {
5140                var r = this.constructor.DATA_KEY;
5141                (i = i || t(n.currentTarget).data(r)) || (i = new this.constructor(n.currentTarget, this._getDelegateConfig()), t(n.currentTarget).data(r, i));
5142                n && (i._activeTrigger["focusout" === n.type ? tu : oi] = !1);
5143                i._isWithActiveTrigger() || (clearTimeout(i._timeout), i._hoverState = nu, i.config.delay && i.config.delay.hide ? i._timeout = setTimeout(function() {
5144                    i._hoverState === nu && i.hide()
5145                }, i.config.delay.hide) : i.hide())
5146            }, n._isWithActiveTrigger = function() {
5147                for (var n in this._activeTrigger)
5148                    if (this._activeTrigger[n]) return !0;
5149                return !1
5150            }, n._getConfig = function(n) {
5151                var i = t(this.element).data();
5152                return Object.keys(i).forEach(function(n) {
5153                    -1 !== hs.indexOf(n) && delete i[n]
5154                }), "number" == typeof(n = f({}, this.constructor.Default, i, "object" == typeof n && n ? n : {})).delay && (n.delay = {
5155                    show: n.delay,
5156                    hide: n.delay
5157                }), "number" == typeof n.title && (n.title = n.title.toString()), "number" == typeof n.content && (n.content = n.content.toString()), r.typeCheckConfig(d, n, this.constructor.DefaultType), n.sanitize && (n.template = wu(n.template, n.whiteList, n.sanitizeFn)), n
5158            }, n._getDelegateConfig = function() {
5159                var t = {},
5160                    n;
5161                if (this.config)
5162                    for (n in this.config) this.constructor.Default[n] !== this.config[n] && (t[n] = this.config[n]);
5163                return t
5164            }, n._cleanTipClass = function() {
5165                var i = t(this.getTipElement()),
5166                    n = i.attr("class").match(ss);
5167                null !== n && n.length && i.removeClass(n.join(""))
5168            }, n._handlePopperPlacementChange = function(n) {
5169                var t = n.instance;
5170                this.tip = t.popper;
5171                this._cleanTipClass();
5172                this.addAttachmentClass(this._getAttachment(n.placement))
5173            }, n._fixTransition = function() {
5174                var n = this.getTipElement(),
5175                    i = this.config.animation;
5176                null === n.getAttribute("x-placement") && (t(n).removeClass(fi), this.config.animation = !1, this.hide(), this.show(), this.config.animation = i)
5177            }, u._jQueryInterface = function(n) {
5178                return this.each(function() {
5179                    var i = t(this).data(ir),
5180                        r = "object" == typeof n && n;
5181                    if ((i || !/dispose|hide/.test(n)) && (i || (i = new u(this, r), t(this).data(ir, i)), "string" == typeof n)) {
5182                        if ("undefined" == typeof i[n]) throw new TypeError('No method named "' + n + '"');
5183                        i[n]()
5184                    }
5185                })
5186            }, l(u, null, [{
5187                key: "VERSION",
5188                get: function() {
5189                    return "4.3.1"
5190                }
5191            }, {
5192                key: "Default",
5193                get: function() {
5194                    return as
5195                }
5196            }, {
5197                key: "NAME",
5198                get: function() {
5199                    return d
5200                }
5201            }, {
5202                key: "DATA_KEY",
5203                get: function() {
5204                    return ir
5205                }
5206            }, {
5207                key: "Event",
5208                get: function() {
5209                    return vs
5210                }
5211            }, {
5212                key: "EVENT_KEY",
5213                get: function() {
5214                    return a
5215                }
5216            }, {
5217                key: "DefaultType",
5218                get: function() {
5219                    return cs
5220                }
5221            }]), u
5222        }();
5223    t.fn[d] = g._jQueryInterface;
5224    t.fn[d].Constructor = g;
5225    t.fn[d].noConflict = function() {
5226        return t.fn[d] = os, g._jQueryInterface
5227    };
5228    var ht = "popover",
5229        rr = "bs.popover",
5230        v = "." + rr,
5231        ks = t.fn[ht],
5232        ku = "bs-popover",
5233        ds = new RegExp("(^|\\s)" + ku + "\\S+", "g"),
5234        gs = f({}, g.Default, {
5235            placement: "right",
5236            trigger: "click",
5237            content: "",
5238            template: '<div class="popover" role="tooltip"><div class="arrow"><\/div><h3 class="popover-header"><\/h3><div class="popover-body"><\/div><\/div>'
5239        }),
5240        nh = f({}, g.DefaultType, {
5241            content: "(string|element|function)"
5242        }),
5243        th = "fade",
5244        ih = "show",
5245        rh = ".popover-header",
5246        uh = ".popover-body",
5247        fh = {
5248            HIDE: "hide" + v,
5249            HIDDEN: "hidden" + v,
5250            SHOW: "show" + v,
5251            SHOWN: "shown" + v,
5252            INSERTED: "inserted" + v,
5253            CLICK: "click" + v,
5254            FOCUSIN: "focusin" + v,
5255            FOCUSOUT: "focusout" + v,
5256            MOUSEENTER: "mouseenter" + v,
5257            MOUSELEAVE: "mouseleave" + v
5258        },
5259        ur = function(n) {
5260            function r() {
5261                return n.apply(this, arguments) || this
5262            }
5263            var u, f, i;
5264            return f = n, (u = r).prototype = Object.create(f.prototype), (u.prototype.constructor = u).__proto__ = f, i = r.prototype, i.isWithContent = function() {
5265                return this.getTitle() || this._getContent()
5266            }, i.addAttachmentClass = function(n) {
5267                t(this.getTipElement()).addClass(ku + "-" + n)
5268            }, i.getTipElement = function() {
5269                return this.tip = this.tip || t(this.config.template)[0], this.tip
5270            }, i.setContent = function() {
5271                var i = t(this.getTipElement()),
5272                    n;
5273                this.setElementContent(i.find(rh), this.getTitle());
5274                n = this._getContent();
5275                "function" == typeof n && (n = n.call(this.element));
5276                this.setElementContent(i.find(uh), n);
5277                i.removeClass(th + " " + ih)
5278            }, i._getContent = function() {
5279                return this.element.getAttribute("data-content") || this.config.content
5280            }, i._cleanTipClass = function() {
5281                var i = t(this.getTipElement()),
5282                    n = i.attr("class").match(ds);
5283                null !== n && 0 < n.length && i.removeClass(n.join(""))
5284            }, r._jQueryInterface = function(n) {
5285                return this.each(function() {
5286                    var i = t(this).data(rr),
5287                        u = "object" == typeof n ? n : null;
5288                    if ((i || !/dispose|hide/.test(n)) && (i || (i = new r(this, u), t(this).data(rr, i)), "string" == typeof n)) {
5289                        if ("undefined" == typeof i[n]) throw new TypeError('No method n
5289amed "' + n + '"');
5290                        i[n]()
5291                    }
5292                })
5293            }, l(r, null, [{
5294                key: "VERSION",
5295                get: function() {
5296                    return "4.3.1"
5297                }
5298            }, {
5299                key: "Default",
5300                get: function() {
5301                    return gs
5302                }
5303            }, {
5304                key: "NAME",
5305                get: function() {
5306                    return ht
5307                }
5308            }, {
5309                key: "DATA_KEY",
5310                get: function() {
5311                    return rr
5312                }
5313            }, {
5314                key: "Event",
5315                get: function() {
5316                    return fh
5317                }
5318            }, {
5319                key: "EVENT_KEY",
5320                get: function() {
5321                    return v
5322                }
5323            }, {
5324                key: "DefaultType",
5325                get: function() {
5326                    return nh
5327                }
5328            }]), r
5329        }(g);
5330    t.fn[ht] = ur._jQueryInterface;
5331    t.fn[ht].Constructor = ur;
5332    t.fn[ht].noConflict = function() {
5333        return t.fn[ht] = ks, ur._jQueryInterface
5334    };
5335    var nt = "scrollspy",
5336        fr = "bs.scrollspy",
5337        er = "." + fr,
5338        eh = t.fn[nt],
5339        du = {
5340            offset: 10,
5341            method: "auto",
5342            target: ""
5343        },
5344        oh = {
5345            offset: "number",
5346            method: "string",
5347            target: "(string|element)"
5348        },
5349        iu = {
5350            ACTIVATE: "activate" + er,
5351            SCROLL: "scroll" + er,
5352            LOAD_DATA_API: "load" + er + ".data-api"
5353        },
5354        sh = "dropdown-item",
5355        tt = "active",
5356        hh = '[data-spy="scroll"]',
5357        gu = ".nav, .list-group",
5358        ru = ".nav-link",
5359        ch = ".nav-item",
5360        nf = ".list-group-item",
5361        lh = ".dropdown",
5362        ah = ".dropdown-item",
5363        vh = ".dropdown-toggle",
5364        yh = "offset",
5365        tf = "position",
5366        si = function() {
5367            function i(n, i) {
5368                var r = this;
5369                this._element = n;
5370                this._scrollElement = "BODY" === n.tagName ? window : n;
5371                this._config = this._getConfig(i);
5372                this._selector = this._config.target + " " + ru + "," + this._config.target + " " + nf + "," + this._config.target + " " + ah;
5373                this._offsets = [];
5374                this._targets = [];
5375                this._activeTarget = null;
5376                this._scrollHeight = 0;
5377                t(this._scrollElement).on(iu.SCROLL, function(n) {
5378                    return r._process(n)
5379                });
5380                this.refresh();
5381                this._process()
5382            }
5383            var n = i.prototype;
5384            return n.refresh = function() {
5385                var n = this,
5386                    u = this._scrollElement === this._scrollElement.window ? yh : tf,
5387                    i = "auto" === this._config.method ? u : this._config.method,
5388                    f = i === tf ? this._getScrollTop() : 0;
5389                this._offsets = [];
5390                this._targets = [];
5391                this._scrollHeight = this._getScrollHeight();
5392                [].slice.call(document.querySelectorAll(this._selector)).map(function(n) {
5393                    var u, e = r.getSelectorFromElement(n),
5394                        o;
5395                    return (e && (u = document.querySelector(e)), u) && (o = u.getBoundingClientRect(), o.width || o.height) ? [t(u)[i]().top + f, e] : null
5396                }).filter(function(n) {
5397                    return n
5398                }).sort(function(n, t) {
5399                    return n[0] - t[0]
5400                }
5400).forEach(function(t) {
5401                    n._offsets.push(t[0]);
5402                    n._targets.push(t[1])
5403                })
5404            }, n.dispose = function() {
5405                t.removeData(this._element, fr);
5406                t(this._scrollElement).off(er);
5407                this._element = null;
5408                this._scrollElement = null;
5409                this._config = null;
5410                this._selector = null;
5411                this._offsets = null;
5412                this._targets = null;
5413                this._activeTarget = null;
5414                this._scrollHeight = null
5415            }, n._getConfig = function(n) {
5416                if ("string" != typeof(n = f({}, du, "object" == typeof n && n ? n : {})).target) {
5417                    var i = t(n.target).attr("id");
5418                    i || (i = r.getUID(nt), t(n.target).attr("id", i));
5419                    n.target = "#" + i
5420                }
5421                return r.typeCheckConfig(nt, n, oh), n
5422            }, n._getScrollTop = function() {
5423                return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop
5424            }, n._getScrollHeight = function() {
5425                return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)
5426            }, n._getOffsetHeight = function() {
5427                return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height
5428            }, n._process = function() {
5429                var t = this._getScrollTop() + this._config.offset,
5430                    r = this._getScrollHeight(),
5431                    u = this._config.offset + r - this._getOffsetHeight(),
5432                    i, n;
5433                if (this._scrollHeight !== r && this.refresh(), u <= t) i = this._targets[this._targets.length - 1], this._activeTarget !== i && this._activate(i);
5434                else {
5435                    if (this._activeTarget && t < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear();
5436                    for (n = this._offsets.length; n--;) this._activeTarget !== this._targets[n] && t >= this._offsets[n] && ("undefined" == typeof this._offsets[n + 1] || t < this._offsets[n + 1]) && this._activate(this._targets[n])
5437                }
5438            }, n._activate = function(n) {
5439                this._activeTarget = n;
5440                this._clear();
5441                var r = this._selector.split(",").map(function(t) {
5442                        return t + '[data-target="' + n + '"],' + t + '[href="' + n + '"]'
5443                    }),
5444                    i = t([].slice.call(document.querySelectorAll(r.join(","))));
5445                i.hasClass(sh) ? (i.closest(lh).find(vh).addClass(tt), i.addClass(tt)) : (i.addClass(tt), i.parents(gu).prev(ru + ", " + nf).addClass(tt), i.parents(gu).prev(ch).children(ru).addClass(tt));
5446                t(this._scrollElement).trigger(iu.ACTIVATE, {
5447                    relatedTarget: n
5448                })
5449            }, n._clear = function() {
5450                [].slice.call(document.querySelectorAll(this._selector)).filter(function(n) {
5451                    return n.classList.contains(tt)
5452                }
5452).forEach(function(n) {
5453                    return n.classList.remove(tt)
5454                })
5455            }, i._jQueryInterface = function(n) {
5456                return this.each(function() {
5457                    var r = t(this).data(fr);
5458                    if (r || (r = new i(this, "object" == typeof n && n), t(this).data(fr, r)), "string" == typeof n) {
5459                        if ("undefined" == typeof r[n]) throw new TypeError('No method named "' + n + '"');
5460                        r[n]()
5461                    }
5462                })
5463            }, l(i, null, [{
5464                key: "VERSION",
5465                get: function() {
5466                    return "4.3.1"
5467                }
5468            }, {
5469                key: "Default",
5470                get: function() {
5471                    return du
5472                }
5473            }]), i
5474        }();
5475    t(window).on(iu.LOAD_DATA_API, function() {
5476        for (var r, n = [].slice.call(document.querySelectorAll(hh)), i = n.length; i--;) r = t(n[i]), si._jQueryInterface.call(r, r.data())
5477    });
5478    t.fn[nt] = si._jQueryInterface;
5479    t.fn[nt].Constructor = si;
5480    t.fn[nt].noConflict = function() {
5481        return t.fn[nt] = eh, si._jQueryInterface
5482    };
5483    var or = "bs.tab",
5484        hi = "." + or,
5485        ph = t.fn.tab,
5486        ci = {
5487            HIDE: "hide" + hi,
5488            HIDDEN: "hidden" + hi,
5489            SHOW: "show" + hi,
5490            SHOWN: "shown" + hi,
5491            CLICK_DATA_API: "click" + hi + ".data-api"
5492        },
5493        wh = "dropdown-menu",
5494        li = "active",
5495        bh = "disabled",
5496        rf = "fade",
5497        uf = "show",
5498        kh = ".dropdown",
5499        dh = ".nav, .list-group",
5500        ff = ".active",
5501        ef = "> li > .active",
5502        gh = ".dropdown-toggle",
5503        nc = "> .dropdown-menu .active",
5504        ai = function() {
5505            function n(n) {
5506                this._element = n
5507            }
5508            var i = n.prototype;
5509            return i.show = function() {
5510                var h = this,
5511                    u, n, i, f, c, e, o, s;
5512                this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && t(this._element).hasClass(li) || t(this._element).hasClass(bh) || (i = t(this._element).closest(dh)[0], f = r.getSelectorFromElement(this._element), i && (c = "UL" === i.nodeName || "OL" === i.nodeName ? ef : ff, n = (n = t.makeArray(t(i).find(c)))[n.length - 1]), e = t.Event(ci.HIDE, {
5513                    relatedTarget: this._element
5514                }), o = t.Event(ci.SHOW, {
5515                    relatedTarget: n
5516                }), (n && t(n).trigger(e), t(this._element).trigger(o), o.isDefaultPrevented() || e.isDefaultPrevented()) || (f && (u = document.querySelector(f)), this._activate(this._element, i), s = function() {
5517                    var i = t.Event(ci.HIDDEN, {
5518                            relatedTarget: h._element
5519                        }),
5520                        r = t.Event(ci.SHOWN, {
5521                            relatedTarget: n
5522                        });
5523                    t(n).trigger(i);
5524                    t(h._element).trigger(r)
5525                }, u ? this._activate(u, u.parentNode, s) : s()))
5526            }, i.dispose = function() {
5527                t.removeData(this._element, or);
5528                this._element = null
5529            }, i._activate = function(n, i, u) {
5530                var s = this,
5531                    f = (!i || "UL" !== i.nodeName && "OL" !== i.nodeName ? t(i).children(ff) : t(i).find(ef))[0],
5532                    h = u && f && t(f).hasClass(rf),
5533                    e = function() {
5534                        return s._transitionComplete(n, f, u)
5535                    },
5536                    o;
5537                f && h ? (o = r.getTransitionDurationFromElement(f), t(f).removeClass(uf).one(r.TRANSITION_END, e).emulateTransitionEnd(o)) : e()
5538            }, i._transitionComplete = function(n, i, u) {
5539                var f, e, o;
5540                i && (t(i).removeClass(li), f = t(i.parentNode).find(nc)[0], f && t(f).removeClass(li), "tab" === i.getAttribute("role") && i.setAttribute("aria-selected", !1));
5541                (t(n).addClass(li), "tab" === n.getAttribute("role") && n.setAttribute("aria-selected", !0), r.reflow(n), n.classList.contains(rf) && n.classList.add(uf), n.parentNode && t(n.parentNode).hasClass(wh)) && (e = t(n).closest(kh)[0], e && (o = [].slice.call(e.querySelectorAll(gh)), t(o).addClass(li)), n.setAttribute("aria-expanded", !0));
5542                u && u()
5543            }, n._jQueryInterface = function(i) {
5544                return this.each(function() {
5545                    var u = t(this),
5546                        r = u.data(or);
5547                    if (r || (r = new n(this), u.data(or, r)), "string" == typeof i) {
5548                        if ("undefined" == typeof r[i]) throw new TypeError('No method n
5548amed "' + i + '"');
5549                        r[i]()
5550                    }
5551                })
5552            }, l(n, null, [{
5553                key: "VERSION",
5554                get: function() {
5555                    return "4.3.1"
5556                }
5557            }]), n
5558        }();
5559    t(document).on(ci.CLICK_DATA_API, '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', function(n) {
5560        n.preventDefault();
5561        ai._jQueryInterface.call(t(this), "show")
5562    });
5563    t.fn.tab = ai._jQueryInterface;
5564    t.fn.tab.Constructor = ai;
5565    t.fn.tab.noConflict = function() {
5566        return t.fn.tab = ph, ai._jQueryInterface
5567    };
5568    var ct = "toast",
5569        sr = "bs.toast",
5570        vi = "." + sr,
5571        tc = t.fn[ct],
5572        lt = {
5573            CLICK_DISMISS: "click.dismiss" + vi,
5574            HIDE: "hide" + vi,
5575            HIDDEN: "hidden" + vi,
5576            SHOW: "show" + vi,
5577            SHOWN: "shown" + vi
5578        },
5579        ic = "fade",
5580        of = "hide",
5581        yi = "show",
5582        sf = "showing",
5583        rc = {
5584            animation: "boolean",
5585            autohide: "boolean",
5586            delay: "number"
5587        },
5588        hf = {
5589            animation: !0,
5590            autohide: !0,
5591            delay: 500
5592        },
5593        uc = '[data-dismiss="toast"]',
5594        hr = function() {
5595            function i(n, t) {
5596                this._element = n;
5597                this._config = this._getConfig(t);
5598                this._timeout = null;
5599                this._setListeners()
5600            }
5601            var n = i.prototype;
5602            return n.show = function() {
5603                var n = this,
5604                    i, u;
5605                t(this._element).trigger(lt.SHOW);
5606                this._config.animation && this._element.classList.add(ic);
5607                i = function() {
5608                    n._element.classList.remove(sf);
5609                    n._element.classList.add(yi);
5610                    t(n._element).trigger(lt.SHOWN);
5611                    n._config.autohide && n.hide()
5612                };
5613                (this._element.classList.remove(of), this._element.classList.add(sf), this._config.animation) ? (u = r.getTransitionDurationFromElement(this._element), t(this._element).one(r.TRANSITION_END, i).emulateTransitionEnd(u)) : i()
5614            }, n.hide = function(n) {
5615                var i = this;
5616                this._element.classList.contains(yi) && (t(this._element).trigger(lt.HIDE), n ? this._close() : this._timeout = setTimeout(function() {
5617                    i._close()
5618                }, this._config.delay))
5619            }, n.dispose = function() {
5620                clearTimeout(this._timeout);
5621                this._timeout = null;
5622                this._element.classList.contains(yi) && this._element.classList.remove(yi);
5623                t(this._element).off(lt.CLICK_DISMISS);
5624                t.removeData(this._element, sr);
5625                this._element = null;
5626                this._config = null
5627            }, n._getConfig = function(n) {
5628                return n = f({}, hf, t(this._element).data(), "object" == typeof n && n ? n : {}), r.typeCheckConfig(ct, n, this.constructor.DefaultType), n
5629            }, n._setListeners = function() {
5630                var n = this;
5631                t(this._element).on(lt.CLICK_DISMISS, uc, function() {
5632                    return n.hide(!0)
5633                })
5634            }, n._close = function() {
5635                var n = this,
5636                    i = function() {
5637                        n._element.classList.add(of);
5638                        t(n._element).trigger(lt.HIDDEN)
5639                    },
5640                    u;
5641                (this._element.classList.remove(yi), this._config.animation) ? (u = r.getTransitionDurationFromElement(this._element), t(this._element).one(r.TRANSITION_END, i).emulateTransitionEnd(u)) : i()
5642            }, i._jQueryInterface = function(n) {
5643                return this.each(function() {
5644                    var u = t(this),
5645                        r = u.data(sr);
5646                    if (r || (r = new i(this, "object" == typeof n && n), u.data(sr, r)), "string" == typeof n) {
5647                        if ("undefined" == typeof r[n]) throw new TypeError('No method n
5647amed "' + n + '"');
5648                        r[n](this)
5649                    }
5650                })
5651            }, l(i, null, [{
5652                key: "VERSION",
5653                get: function() {
5654                    return "4.3.1"
5655                }
5656            }, {
5657                key: "DefaultType",
5658                get: function() {
5659                    return rc
5660                }
5661            }, {
5662                key: "Default",
5663                get: function() {
5664                    return hf
5665                }
5666            }]), i
5667        }();
5668    t.fn[ct] = hr._jQueryInterface;
5669    t.fn[ct].Constructor = hr;
5670    t.fn[ct].noConflict = function() {
5671            return t.fn[ct] = tc, hr._jQueryInterface
5672        },
5673        function() {
5674            if ("undefined" == typeof t) throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");
5675            var n = t.fn.jquery.split(" ")[0].split(".");
5676            if (n[0] < 2 && n[1] < 9 || 1 === n[0] && 9 === n[1] && n[2] < 1 || 4 <= n[0]) throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0");
5677        }();
5678    n.Util = r;
5679    n.Alert = it;
5680    n.Button = wt;
5681    n.Carousel = ut;
5682    n.Collapse = ni;
5683    n.Dropdown = p;
5684    n.Modal = ri;
5685    n.Popover = ur;
5686    n.Scrollspy = si;
5687    n.Tab = ai;
5688    n.Toast = hr;
5689    n.Tooltip = g;
5690    Object.defineProperty(n, "__esModule", {
5691        value: !0
5692    })
5693});
5694! function(n, t, i) {
5695    "use strict";
5696
5697    function s(n, t) {
5698        var u, o, e, r = [],
5699            s = 0;
5700        n && n.isDefaultPrevented() || (n.preventDefault(), t = t || {}, n && n.data && (t = f(n.data.options, t)), u = t.$target || i(n.currentTarget).trigger("blur"), (e = i.fancybox.getInstance()) && e.$trigger && e.$trigger.is(u) || (t.selector ? r = i(t.selector) : (o = u.attr("data-fancybox") || "", o ? (r = n.data ? n.data.items : [], r = r.length ? r.filter('[data-fancybox="' + o + '"]') : i('[data-fancybox="' + o + '"]')) : r = [u]), s = i(r).index(u), s < 0 && (s = 0), e = i.fancybox.open(r, t, s), e.$trigger = u))
5701    }
5702    if (n.console = n.console || {
5703            info: function() {}
5704        }, i) {
5705        if (i.fn.fancybox) return void console.info("fancyBox already initialized");
5706        var l = {
5707                closeExisting: !1,
5708                loop: !1,
5709                gutter: 50,
5710                keyboard: !0,
5711                preventCaptionOverlap: !0,
5712                arrows: !0,
5713                infobar: !0,
5714                smallBtn: "auto",
5715                toolbar: "auto",
5716                buttons: ["zoom", "slideShow", "thumbs", "close"],
5717                idleTime: 3,
5718                protect: !1,
5719                modal: !1,
5720                image: {
5721                    preload: !1
5722                },
5723                ajax: {
5724                    settings: {
5725                        data: {
5726                            fancybox: !0
5727                        }
5728                    }
5729                },
5730                iframe: {
5731                    tpl: '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" allowfullscreen="allowfullscreen" allow="autoplay; fullscreen" src=""><\/iframe>',
5732                    preload: !0,
5733                    css: {},
5734                    attr: {
5735                        scrolling: "auto"
5736                    }
5737                },
5738                video: {
5739                    tpl: '<video class="fancybox-video" controls controlsList="nodownload" poster="{{poster}}"><source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos, <a href="{{src}}">download<\/a> and watch with your favorite video player!<\/video>',
5740                    format: "",
5741                    autoStart: !0
5742                },
5743                defaultType: "image",
5744                animationEffect: "zoom",
5745                animationDuration: 366,
5746                zoomOpacity: "auto",
5747                transitionEffect: "fade",
5748                transitionDuration: 366,
5749                slideClass: "",
5750                baseClass: "",
5751                baseTpl: '<div class="fancybox-container" role="dialog" tabindex="-1"><div class="fancybox-bg"><\/div><div class="fancybox-inner"><div class="fancybox-infobar"><span data-fancybox-index><\/span>&nbsp;/&nbsp;<span data-fancybox-count><\/span><\/div><div class="fancybox-toolbar">{{buttons}}<\/div><div class="fancybox-navigation">{{arrows}}<\/div><div class="fancybox-stage"><\/div><div class="fancybox-caption"><div class="fancybox-caption__body"><\/div><\/div><\/div><\/div>',
5752                spinnerTpl: '<div class="fancybox-loading"><\/div>',
5753                errorTpl: '<div class="fancybox-error"><p>{{ERROR}}<\/p><\/div>',
5754                btnTpl: {
5755                    download: '<a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}" href="javascript:;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
5755<path d="M18.62 17.09V19H5.38v-1.91zm-2.97-6.96L17 11.45l-5 4.87-5-4.87 1.36-1.32 2.68 2.64V5h1.92v7.77z"/><\/svg><\/a>',
5756                    zoom: '<button data-fancybox-zoom class="fancybox-button fancybox-button--zoom" title="{{ZOOM}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.7 17.3l-3-3a5.9 5.9 0 0 0-.6-7.6 5.9 5.9 0 0 0-8.4 0 5.9 5.9 0 0 0 0 8.4 5.9 5.9 0 0 0 7.7.7l3 3a1 1 0 0 0 1.3 0c.4-.5.4-1 0-1.5zM8.1 13.8a4 4 0 0 1 0-5.7 4 4 0 0 1 5.7 0 4 4 0 0 1 0 5.7 4 4 0 0 1-5.7 0z"/><\/svg><\/button>',
5757                    close: '<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 10.6L6.6 5.2 5.2 6.6l5.4 5.4-5.4 5.4 1.4 1.4 5.4-5.4 5.4 5.4 1.4-1.4-5.4-5.4 5.4-5.4-1.4-1.4-5.4 5.4z"/><\/svg><\/button>',
5758                    arrowLeft: '<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.28 15.7l-1.34 1.37L5 12l4.94-5.07 1.34 1.38-2.68 2.72H19v1.94H8.6z"/><\/svg><\/div><\/button>',
5759                    arrowRight: '<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.4 12.97l-2.68 2.72 1.34 1.38L19 12l-4.94-5.07-1.34 1.38 2.68 2.72H5v1.94z"/><\/svg><\/div><\/button>',
5760                    smallBtn: '<button type="button" data-fancybox-close class="fancybox-button fancybox-close-small" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" version="1" viewBox="0 0 24 24"><path d="M13 12l5-5-1-1-5 5-5-5-1 1 5 5-5 5 1 1 5-5 5 5 1-1z"/><\/svg><\/button>'
5761                },
5762                parentEl: "body",
5763                hideScrollbar: !0,
5764                autoFocus: !0,
5765                backFocus: !0,
5766                trapFocus: !0,
5767                fullScreen: {
5768                    autoStart: !1
5769                },
5770                touch: {
5771                    vertical: !0,
5772                    momentum: !0
5773                },
5774                hash: null,
5775                media: {},
5776                slideShow: {
5777                    autoStart: !1,
5778                    speed: 3e3
5779                },
5780                thumbs: {
5781                    autoStart: !1,
5782                    hideOnClose: !0,
5783                    parentEl: ".fancybox-container",
5784                    axis: "y"
5785                },
5786                wheel: "auto",
5787                onInit: i.noop,
5788                beforeLoad: i.noop,
5789                afterLoad: i.noop,
5790                beforeShow: i.noop,
5791                afterShow: i.noop,
5792                beforeClose: i.noop,
5793                afterClose: i.noop,
5794                onActivate: i.noop,
5795                onDeactivate: i.noop,
5796                clickContent: function(n) {
5797                    return "image" === n.type && "zoom"
5798                },
5799                clickSlide: "close",
5800                clickOutside: "close",
5801                dblclickContent: !1,
5802                dblclickSlide: !1,
5803                dblclickOutside: !1,
5804                mobile: {
5805                    preventCaptionOverlap: !1,
5806                    idleTime: !1,
5807                    clickContent: function(n) {
5808                        return "image" === n.type && "toggleControls"
5809                    },
5810                    clickSlide: function(n) {
5811                        return "image" === n.type ? "toggleControls" : "close"
5812                    },
5813                    dblclickContent: function(n) {
5814                        return "image" === n.type && "zoom"
5815                    },
5816                    dblclickSlide: function(n) {
5817                        return "image" === n.type && "zoom"
5818                    }
5819                },
5820                lang: "en",
5821                i18n: {
5822                    en: {
5823                        CLOSE: "Close",
5824                        NEXT: "Next",
5825                        PREV: "Previous",
5826                        ERROR: "The requested content cannot be loaded. <br/> Please try again later.",
5827                        PLAY_START: "Start slideshow",
5828                        PLAY_STOP: "Pause slideshow",
5829                        FULL_SCREEN: "Full screen",
5830                        THUMBS: "Thumbnails",
5831                        DOWNLOAD: "Download",
5832                        SHARE: "Share",
5833                        ZOOM: "Zoom"
5834                    },
5835                    de: {
5836                        CLOSE: "Schlie&szlig;en",
5837                        NEXT: "Weiter",
5838                        PREV: "Zur&uuml;ck",
5839                        ERROR: "Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es sp&auml;ter nochmal.",
5840                        PLAY_START: "Diaschau starten",
5841                        PLAY_STOP: "Diaschau beenden",
5842                        FULL_SCREEN: "Vollbild",
5843                        THUMBS: "Vorschaubilder",
5844                        DOWNLOAD: "Herunterladen",
5845                        SHARE: "Teilen",
5846                        ZOOM: "Vergr&ouml;&szlig;ern"
5847                    }
5848                }
5849            },
5850            e = i(n),
5851            r = i(t),
5852            a = 0,
5853            v = function(n) {
5854                return n && n.hasOwnProperty && n instanceof i
5855            },
5856            c = function() {
5857                return n.requestAnimationFrame || n.webkitRequestAnimationFrame || n.mozRequestAnimationFrame || n.oRequestAnimationFrame || function(t) {
5858                    return n.setTimeout(t, 1e3 / 60)
5859                }
5860            }(),
5861            y = function() {
5862                return n.cancelAnimationFrame || n.webkitCancelAnimationFrame || n.mozCancelAnimationFrame || n.oCancelAnimationFrame || function(t) {
5863                    n.clearTimeout(t)
5864                }
5865            }(),
5866            o = function() {
5867                var n, r = t.createElement("fakeelement"),
5868                    i = {
5869                        transition: "transitionend",
5870                        OTransition: "oTransitionEnd",
5871                        MozTransition: "transitionend",
5872                        WebkitTransition: "webkitTransitionEnd"
5873                    };
5874                for (n in i)
5875                    if (void 0 !== r.style[n]) return i[n];
5876                return "transitionend"
5877            }(),
5878            u = function(n) {
5879                return n && n.length && n[0].offsetHeight
5880            },
5881            f = function(n, t) {
5882                var r = i.extend(!0, {}, n, t);
5883                return i.each(t, function(n, t) {
5884                    i.isArray(t) && (r[n] = t)
5885                }), r
5886            },
5887            p = function(n) {
5888                var r, u;
5889                return !(!n || n.ownerDocument !== t) && (i(".fancybox-container").css("pointer-events", "none"), r = {
5890                    x: n.getBoundingClientRect().left + n.offsetWidth / 2,
5891                    y: n.getBoundingClientRect().top + n.offsetHeight / 2
5892                }, u = t.elementFromPoint(r.x, r.y) === n, i(".fancybox-container").css("pointer-events", ""), u)
5893            },
5894            h = function(n, t, r) {
5895                var u = this;
5896                u.opts = f({
5897                    index: r
5898                }, i.fancybox.defaults);
5899                i.isPlainObject(t) && (u.opts = f(u.opts, t));
5900                i.fancybox.isMobile && (u.opts = f(u.opts, u.opts.mobile));
5901                u.id = u.opts.id || ++a;
5902                u.currIndex = parseInt(u.opts.index, 10) || 0;
5903                u.prevIndex = null;
5904                u.prevPos = null;
5905                u.currPos = 0;
5906                u.firstRun = !0;
5907                u.group = [];
5908                u.slides = {};
5909                u.addContent(n);
5910                u.group.length && u.init()
5911            };
5912        i.extend(h.prototype, {
5913            init: function() {
5914                var f, e, r = this,
5915                    o = r.group[r.currIndex],
5916                    u = o.opts;
5917                u.closeExisting && i.fancybox.close(!0);
5918                i("body").addClass("fancybox-active");
5919                !i.fancybox.getInstance() && !1 !== u.hideScrollbar && !i.fancybox.isMobile && t.body.scrollHeight > n.innerHeight && (i("head").append('<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar{margin-right:' + (n.innerWidth - t.documentElement.clientWidth) + "px;}<\/style>"), i("body").addClass("compensate-for-scrollbar"));
5920                e = "";
5921                i.each(u.buttons, function(n, t) {
5922                    e += u.btnTpl[t] || ""
5923                });
5924                f = i(r.translate(r, u.baseTpl.replace("{{buttons}}", e).replace("{{arrows}}", u.btnTpl.arrowLeft + u.btnTpl.arrowRight))).attr("id", "fancybox-container-" + r.id).addClass(u.baseClass).data("FancyBox", r).appendTo(u.parentEl);
5925                r.$refs = {
5926                    container: f
5927                };
5928                ["bg", "inner", "infobar", "toolbar", "stage", "caption", "navigation"].forEach(function(n) {
5929                    r.$refs[n] = f.find(".fancybox-" + n)
5930                });
5931                r.trigger("onInit");
5932                r.activate();
5933                r.jumpTo(r.currIndex)
5934            },
5935            translate: function(n, t) {
5936                var i = n.opts.i18n[n.opts.lang] || n.opts.i18n.en;
5937                return t.replace(/\{\{(\w+)\}\}/g, function(n, t) {
5938                    return void 0 === i[t] ? n : i[t]
5939                })
5940            },
5941            addContent: function(n) {
5942                var r, t = this,
5943                    u = i.makeArray(n);
5944                i.each(u, function(n, r) {
5945                    var h, o, l, s, c, u = {},
5946                        e = {};
5947                    i.isPlainObject(r) ? (u = r, e = r.opts || r) : "object" === i.type(r) && i(r).length ? (h = i(r), e = h.data() || {}, e = i.extend(!0, {}, e, e.options), e.$orig = h, u.src = t.opts.src || e.src || h.attr("href"), u.type || u.src || (u.type = "inline", u.src = r)) : u = {
5948                        type: "html",
5949                        src: r + ""
5950                    };
5951                    u.opts = i.extend(!0, {}, t.opts, e);
5952                    i.isArray(e.buttons) && (u.opts.buttons = e.buttons);
5953                    i.fancybox.isMobile && u.opts.mobile && (u.opts = f(u.opts, u.opts.mobile));
5954                    o = u.type || u.opts.type;
5955                    s = u.src || "";
5956                    !o && s && ((l = s.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i)) ? (o = "video", u.opts.video.format || (u.opts.video.format = "video/" + ("ogv" === l[1] ? "ogg" : l[1]))) : s.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i) ? o = "image" : s.match(/\.(pdf)((\?|#).*)?$/i) ? (o = "iframe", u = i.extend(!0, u, {
5957                        contentType: "pdf",
5958                        opts: {
5959                            iframe: {
5960                                preload: !1
5961                            }
5962                        }
5963                    })) : "#" === s.charAt(0) && (o = "inline"));
5964                    o ? u.type = o : t.trigger("objectNeedsType", u);
5965                    u.contentType || (u.contentType = i.inArray(u.type, ["html", "inline", "ajax"]) > -1 ? "html" : u.type);
5966                    u.index = t.group.length;
5967                    "auto" == u.opts.smallBtn && (u.opts.smallBtn = i.inArray(u.type, ["html", "inline", "ajax"]) > -1);
5968                    "auto" === u.opts.toolbar && (u.opts.toolbar = !u.opts.smallBtn);
5969                    u.$thumb = u.opts.$thumb || null;
5970                    u.opts.$trigger && u.index === t.opts.index && (u.$thumb = u.opts.$trigger.find("img:first"), u.$thumb.length && (u.opts.$orig = u.opts.$trigger));
5971                    u.$thumb && u.$thumb.length || !u.opts.$orig || (u.$thumb = u.opts.$orig.find("img:first"));
5972                    u.$thumb && !u.$thumb.length && (u.$thumb = null);
5973                    u.thumb = u.opts.thumb || (u.$thumb ? u.$thumb[0].src : null);
5974                    "function" === i.type(u.opts.caption) && (u.opts.caption = u.opts.caption.apply(r, [t, u]));
5975                    "function" === i.type(t.opts.caption) && (u.opts.caption = t.opts.caption.apply(r, [t, u]));
5976                    u.opts.caption instanceof i || (u.opts.caption = void 0 === u.opts.caption ? "" : u.opts.caption + "");
5977                    "ajax" === u.type && (c = s.split(/\s+/, 2), c.length > 1 && (u.src = c.shift(), u.opts.filter = c.shift()));
5978                    u.opts.modal && (u.opts = i.extend(!0, u.opts, {
5979                        trapFocus: !0,
5980                        infobar: 0,
5981                        toolbar: 0,
5982                        smallBtn: 0,
5983                        keyboard: 0,
5984                        slideShow: 0,
5985                        fullScreen: 0,
5986                        thumbs: 0,
5987                        touch: 0,
5988                        clickContent: !1,
5989                        clickSlide: !1,
5990                        clickOutside: !1,
5991                        dblclickContent: !1,
5992                        dblclickSlide: !1,
5993                        dblclickOutside: !1
5994                    }));
5995                    t.group.push(u)
5996                });
5997                Object.keys(t.slides).length && (t.updateControls(), (r = t.Thumbs) && r.isActive && (r.create(), r.focus()))
5998            },
5999            addEvents: function() {
6000                var t = this;
6001                t.removeEvents();
6002                t.$refs.container.on("click.fb-close", "[data-fancybox-close]", function(n) {
6003                    n.stopPropagation();
6004                    n.preventDefault();
6005                    t.close(n)
6006                }).on("touchstart.fb-prev click.fb-prev", "[data-fancybox-prev]", function(n) {
6007                    n.stopPropagation();
6008                    n.preventDefault();
6009                    t.previous()
6010                }).on("touchstart.fb-next click.fb-next", "[data-fancybox-next]", function(n) {
6011                    n.stopPropagation();
6012                    n.preventDefault();
6013                    t.next()
6014                }).on("click.fb", "[data-fancybox-zoom]", function() {
6015                    t[t.isScaledDown() ? "scaleToActual" : "scaleToFit"]()
6016                });
6017                e.on("orientationchange.fb resize.fb", function(n) {
6018                    n && n.originalEvent && "resize" === n.originalEvent.type ? (t.requestId && y(t.requestId), t.requestId = c(function() {
6019                        t.update(n)
6020                    })) : (t.current && "iframe" === t.current.type && t.$refs.stage.hide(), setTimeout(function() {
6021                        t.$refs.stage.show();
6022                        t.update(n)
6023                    }, i.fancybox.isMobile ? 600 : 250))
6024                });
vendor: 13,908 bytes, lines 6025-6226
6025                r.on("keydown.fb", function(n) {
6026                    var f = i.fancybox ? i.fancybox.getInstance() : null,
6027                        u = f.current,
6028                        r = n.keyCode || n.which;
6029                    return 9 == r ? void(u.opts.trapFocus && t.focus(n)) : (!u.opts.keyboard || n.ctrlKey || n.altKey || n.shiftKey || i(n.target).is("input,textarea,video,audio")) ? void 0 : 8 === r || 27 === r ? (n.preventDefault(), void t.close(n)) : 37 === r || 38 === r ? (n.preventDefault(), void t.previous()) : 39 === r || 40 === r ? (n.preventDefault(), void t.next()) : void t.trigger("afterKeydown", n, r)
6030                });
6031                t.group[t.currIndex].opts.idleTime && (t.idleSecondsCounter = 0, r.on("mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle", function() {
6032                    t.idleSecondsCounter = 0;
6033                    t.isIdle && t.showControls();
6034                    t.isIdle = !1
6035                }), t.idleInterval = n.setInterval(function() {
6036                    ++t.idleSecondsCounter >= t.group[t.currIndex].opts.idleTime && !t.isDragging && (t.isIdle = !0, t.idleSecondsCounter = 0, t.hideControls())
6037                }, 1e3))
6038            },
6039            removeEvents: function() {
6040                var t = this;
6041                e.off("orientationchange.fb resize.fb");
6042                r.off("keydown.fb .fb-idle");
6043                this.$refs.container.off(".fb-close .fb-prev .fb-next");
6044                t.idleInterval && (n.clearInterval(t.idleInterval), t.idleInterval = null)
6045            },
6046            previous: function(n) {
6047                return this.jumpTo(this.currPos - 1, n)
6048            },
6049            next: function(n) {
6050                return this.jumpTo(this.currPos + 1, n)
6051            },
6052            jumpTo: function(n, t) {
6053                var s, a, h, f, e, o, v, c, y, r = this,
6054                    l = r.group.length;
6055                if (!(r.isDragging || r.isClosing || r.isAnimating && r.firstRun)) {
6056                    if (n = parseInt(n, 10), !(h = r.current ? r.current.opts.loop : r.opts.loop) && (n < 0 || n >= l)) return !1;
6057                    if (s = r.firstRun = !Object.keys(r.slides).length, e = r.current, r.prevIndex = r.currIndex, r.prevPos = r.currPos, f = r.createSlide(n), l > 1 && ((h || f.index < l - 1) && r.createSlide(n + 1), (h || f.index > 0) && r.createSlide(n - 1)), r.current = f, r.currIndex = f.index, r.currPos = f.pos, r.trigger("beforeShow", s), r.updateControls(), f.forcedDuration = void 0, i.isNumeric(t) ? f.forcedDuration = t : t = f.opts[s ? "animationDuration" : "transitionDuration"], t = parseInt(t, 10), a = r.isMoved(f), f.$slide.addClass("fancybox-slide--current"), s) return f.opts.animationEffect && t && r.$refs.container.css("transition-duration", t + "ms"), r.$refs.container.addClass("fancybox-is-open").trigger("focus"), r.loadSlide(f), void r.preload("image");
6058                    o = i.fancybox.getTranslate(e.$slide);
6059                    v = i.fancybox.getTranslate(r.$refs.stage);
6060                    i.each(r.slides, function(n, t) {
6061                        i.fancybox.stop(t.$slide, !0)
6062                    });
6063                    e.pos !== f.pos && (e.isComplete = !1);
6064                    e.$slide.removeClass("fancybox-slide--complete fancybox-slide--current");
6065                    a ? (y = o.left - (e.pos * o.width + e.pos * e.opts.gutter), i.each(r.slides, function(n, e) {
6066                        e.$slide.removeClass("fancybox-animated").removeClass(function(n, t) {
6067                            return (t.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" ")
6068                        });
6069                        var s = e.pos * o.width + e.pos * e.opts.gutter;
6070                        i.fancybox.setTranslate(e.$slide, {
6071                            top: 0,
6072                            left: s - v.left + y
6073                        });
6074                        e.pos !== f.pos && e.$slide.addClass("fancybox-slide--" + (e.pos > f.pos ? "next" : "previous"));
6075                        u(e.$slide);
6076                        i.fancybox.animate(e.$slide, {
6077                            top: 0,
6078                            left: (e.pos - f.pos) * o.width + (e.pos - f.pos) * e.opts.gutter
6079                        }, t, function() {
6080                            e.$slide.css({
6081                                transform: "",
6082                                opacity: ""
6083                            }).removeClass("fancybox-slide--next fancybox-slide--previous");
6084                            e.pos === r.currPos && r.complete()
6085                        })
6086                    })) : t && f.opts.transitionEffect && (c = "fancybox-animated fancybox-fx-" + f.opts.transitionEffect, e.$slide.addClass("fancybox-slide--" + (e.pos > f.pos ? "next" : "previous")), i.fancybox.animate(e.$slide, c, t, function() {
6087                        e.$slide.removeClass(c).removeClass("fancybox-slide--next fancybox-slide--previous")
6088                    }, !1));
6089                    f.isLoaded ? r.revealContent(f) : r.loadSlide(f);
6090                    r.preload("image")
6091                }
6092            },
6093            createSlide: function(n) {
6094                var u, r, t = this;
6095                return r = n % t.group.length, r = r < 0 ? t.group.length + r : r, !t.slides[n] && t.group[r] && (u = i('<div class="fancybox-slide"><\/div>').appendTo(t.$refs.stage), t.slides[n] = i.extend(!0, {}, t.group[r], {
6096                    pos: n,
6097                    $slide: u,
6098                    isLoaded: !1
6099                }), t.updateSlide(t.slides[n])), t.slides[n]
6100            },
6101            scaleToActual: function(n, t, r) {
6102                var e, o, s, v, y, f = this,
6103                    u = f.current,
6104                    p = u.$content,
6105                    l = i.fancybox.getTranslate(u.$slide).width,
6106                    a = i.fancybox.getTranslate(u.$slide).height,
6107                    h = u.width,
6108                    c = u.height;
6109                f.isAnimating || f.isMoved() || !p || "image" != u.type || !u.isLoaded || u.hasError || (f.isAnimating = !0, i.fancybox.stop(p), n = void 0 === n ? .5 * l : n, t = void 0 === t ? .5 * a : t, e = i.fancybox.getTranslate(p), e.top -= i.fancybox.getTranslate(u.$slide).top, e.left -= i.fancybox.getTranslate(u.$slide).left, v = h / e.width, y = c / e.height, o = .5 * l - .5 * h, s = .5 * a - .5 * c, h > l && (o = e.left * v - (n * v - n), o > 0 && (o = 0), o < l - h && (o = l - h)), c > a && (s = e.top * y - (t * y - t), s > 0 && (s = 0), s < a - c && (s = a - c)), f.updateCursor(h, c), i.fancybox.animate(p, {
6110                    top: s,
6111                    left: o,
6112                    scaleX: v,
6113                    scaleY: y
6114                }, r || 366, function() {
6115                    f.isAnimating = !1
6116                }), f.SlideShow && f.SlideShow.isActive && f.SlideShow.stop())
6117            },
6118            scaleToFit: function(n) {
6119                var t, r = this,
6120                    u = r.current,
6121                    f = u.$content;
6122                r.isAnimating || r.isMoved() || !f || "image" != u.type || !u.isLoaded || u.hasError || (r.isAnimating = !0, i.fancybox.stop(f), t = r.getFitPos(u), r.updateCursor(t.width, t.height), i.fancybox.animate(f, {
6123                    top: t.top,
6124                    left: t.left,
6125                    scaleX: t.width / f.width(),
6126                    scaleY: t.height / f.height()
6127                }, n || 366, function() {
6128                    r.isAnimating = !1
6129                }))
6130            },
6131            getFitPos: function(n) {
6132                var u, f, c, s, l = this,
6133                    e = n.$content,
6134                    o = n.$slide,
6135                    t = n.width || n.opts.width,
6136                    r = n.height || n.opts.height,
6137                    h = {};
6138                return !!(n.isLoaded && e && e.length) && (u = i.fancybox.getTranslate(l.$refs.stage).width, f = i.fancybox.getTranslate(l.$refs.stage).height, u -= parseFloat(o.css("paddingLeft")) + parseFloat(o.css("paddingRight")) + parseFloat(e.css("marginLeft")) + parseFloat(e.css("marginRight")), f -= parseFloat(o.css("paddingTop")) + parseFloat(o.css("paddingBottom")) + parseFloat(e.css("marginTop")) + parseFloat(e.css("marginBottom")), t && r || (t = u, r = f), c = Math.min(1, u / t, f / r), t *= c, r *= c, t > u - .5 && (t = u), r > f - .5 && (r = f), "image" === n.type ? (h.top = Math.floor(.5 * (f - r)) + parseFloat(o.css("paddingTop")), h.left = Math.floor(.5 * (u - t)) + parseFloat(o.css("paddingLeft"))) : "video" === n.contentType && (s = n.opts.width && n.opts.height ? t / r : n.opts.ratio || 16 / 9, r > t / s ? r = t / s : t > r * s && (t = r * s)), h.width = t, h.height = r, h)
6139            },
6140            update: function(n) {
6141                var t = this;
6142                i.each(t.slides, function(i, r) {
6143                    t.updateSlide(r, n)
6144                })
6145            },
6146            updateSlide: function(n, t) {
6147                var r = this,
6148                    f = n && n.$content,
6149                    e = n.width || n.opts.width,
6150                    o = n.height || n.opts.height,
6151                    u = n.$slide;
6152                r.adjustCaption(n);
6153                f && (e || o || "video" === n.contentType) && !n.hasError && (i.fancybox.stop(f), i.fancybox.setTranslate(f, r.getFitPos(n)), n.pos === r.currPos && (r.isAnimating = !1, r.updateCursor()));
6154                r.adjustLayout(n);
6155                u.length && (u.trigger("refresh"), n.pos === r.currPos && r.$refs.toolbar.add(r.$refs.navigation.find(".fancybox-button--arrow_right")).toggleClass("compensate-for-scrollbar", u.get(0).scrollHeight > u.get(0).clientHeight));
6156                r.trigger("onUpdate", n, t)
6157            },
6158            centerSlide: function(n) {
6159                var r = this,
6160                    u = r.current,
6161                    t = u.$slide;
6162                !r.isClosing && u && (t.siblings().css({
6163                    transform: "",
6164                    opacity: ""
6165                }), t.parent().children().removeClass("fancybox-slide--previous fancybox-slide--next"), i.fancybox.animate(t, {
6166                    top: 0,
6167                    left: 0,
6168                    opacity: 1
6169                }, void 0 === n ? 0 : n, function() {
6170                    t.css({
6171                        transform: "",
6172                        opacity: ""
6173                    });
6174                    u.isComplete || r.complete()
6175                }, !1))
6176            },
6177            isMoved: function(n) {
6178                var t, r, u = n || this.current;
6179                return !!u && (r = i.fancybox.getTranslate(this.$refs.stage), t = i.fancybox.getTranslate(u.$slide), !u.$slide.hasClass("fancybox-animated") && (Math.abs(t.top - r.top) > .5 || Math.abs(t.left - r.left) > .5))
6180            },
6181            updateCursor: function(n, t) {
6182                var o, e, u = this,
6183                    r = u.current,
6184                    f = u.$refs.container;
6185                r && !u.isClosing && u.Guestures && (f.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan"), o = u.canPan(n, t), e = !!o || u.isZoomable(), f.toggleClass("fancybox-is-zoomable", e), i("[data-fancybox-zoom]").prop("disabled", !e), o ? f.addClass("fancybox-can-pan") : e && ("zoom" === r.opts.clickContent || i.isFunction(r.opts.clickContent) && "zoom" == r.opts.clickContent(r)) ? f.addClass("fancybox-can-zoomIn") : r.opts.touch && (r.opts.touch.vertical || u.group.length > 1) && "video" !== r.contentType && f.addClass("fancybox-can-swipe"))
6186            },
6187            isZoomable: function() {
6188                var t, i = this,
6189                    n = i.current;
6190                return n && !i.isClosing && "image" === n.type && !n.hasError && (!n.isLoaded || (t = i.getFitPos(n)) && (n.width > t.width || n.height > t.height)) ? !0 : !1
6191            },
6192            isScaledDown: function(n, t) {
6193                var e = this,
6194                    r = !1,
6195                    u = e.current,
6196                    f = u.$content;
6197                return void 0 !== n && void 0 !== t ? r = n < u.width && t < u.height : f && (r = i.fancybox.getTranslate(f), r = r.width < u.width && r.height < u.height), r
6198            },
6199            canPan: function(n, t) {
6200                var e = this,
6201                    r = e.current,
6202                    f = null,
6203                    u = !1;
6204                return "image" === r.type && (r.isComplete || n && t) && !r.hasError && (u = e.getFitPos(r), void 0 !== n && void 0 !== t ? f = {
6205                    width: n,
6206                    height: t
6207                } : r.isComplete && (f = i.fancybox.getTranslate(r.$content)), f && u && (u = Math.abs(f.width - u.width) > 1.5 || Math.abs(f.height - u.height) > 1.5)), u
6208            },
6209            loadSlide: function(n) {
6210                var u, r, f, t = this;
6211                if (!n.isLoading && !n.isLoaded) {
6212                    if (n.isLoading = !0, !1 === t.trigger("beforeLoad", n)) return n.isLoading = !1, !1;
6213                    switch (u = n.type, r = n.$slide, r.off("refresh").trigger("onReset").addClass(n.opts.slideClass), u) {
6214                        case "image":
6215                            t.setImage(n);
6216                            break;
6217                        case "iframe":
6218                            t.setIframe(n);
6219                            break;
6220                        case "html":
6221                            t.setContent(n, n.src || n.content);
6222                            break;
6223                        case "video":
6224                            t.setContent(n, n.opts.video.tpl.replace(/\{\{src\}\}/gi, n.src).replace("{{format}}", n.opts.videoFormat || n.opts.video.format || "").replace("{{poster}}", n.thumb || ""));
6225                            break;
6226                        case "inline":
6227                            i(n.src).length ? t.setContent(n, i(n.src)) : t.setError(n);
6228                            break;
6229                        case "ajax":
6230                            t.showLoading(n);
6231                            f = i.ajax(i.extend({}, n.opts.ajax.settings, {
6232                                url: n.src,
6233                                success: function(i, r) {
6234                                    "success" === r && t.setContent(n, i)
6235                                },
6236                                error: function(i, r) {
6237                                    i && "abort" !== r && t.setError(n)
6238                                }
6239                            }));
6240                            r.one("onReset", function() {
6241                                f.abort()
6242                            });
6243                            break;
6244                        default:
6245                            t.setError(n)
6246                    }
6247                    return !0
6248                }
6249            },
6250            setImage: function(n) {
6251                var u, r = this;
6252                setTimeout(function() {
6253                    var t = n.$image;
6254                    r.isClosing || !n.isLoading || t && t.length && t[0].complete || n.hasError || r.showLoading(n)
6255                }, 50);
6256                r.checkSrcset(n);
6257                n.$content = i('<div class="fancybox-content"><\/div>').addClass("fancybox-is-hidden").appendTo(n.$slide.addClass("fancybox-slide--image"));
6258                !1 !== n.opts.preload && n.opts.width && n.opts.height && n.thumb && (n.width = n.opts.width, n.height = n.opts.height, u = t.createElement("img"), u.onerror = function() {
6259                    i(this).remove();
6260                    n.$ghost = null
6261                }, u.onload = function() {
6262                    r.afterLoad(n)
6263                }, n.$ghost = i(u).addClass("fancybox-image").appendTo(n.$content).attr("src", n.thumb));
6264                r.setBigImage(n)
6265            },
6266            checkSrcset: function(t) {
6267                var i, r, e, s, o = t.opts.srcset || t.opts.image.srcset,
6268                    f, u;
6269                if (o) {
6270                    for (e = n.devicePixelRatio || 1, s = n.innerWidth * e, r = o.split(",").map(function(n) {
6271                            var t = {};
6272                            return n.trim().split(/\s+/).forEach(function(n, i) {
6273                                var r = parseInt(n.substring(0, n.length - 1), 10);
6274                                if (0 === i) return t.url = n;
6275                                r && (t.value = r, t.postfix = n[n.length - 1])
6276                            }), t
6277                        }), r.sort(function(n, t) {
6278                            return n.value - t.value
6279                        }), f = 0; f < r.length; f++)
6280                        if (u = r[f], "w" === u.postfix && u.value >= s || "x" === u.postfix && u.value >= e) {
6281                            i = u;
6282                            break
6283                        }!i && r.length && (i = r[r.length - 1]);
6284                    i && (t.src = i.url, t.width && t.height && "w" == i.postfix && (t.height = t.width / t.height * i.value, t.width = i.value), t.opts.srcset = o)
6285                }
6286            },
6287            setBigImage: function(n) {
6288                var r = this,
6289                    f = t.createElement("img"),
6290                    u = i(f);
6291                n.$image = u.one("error", function() {
6292                    r.setError(n)
6293                }).one("load", function() {
6294                    var t;
6295                    n.$ghost || (r.resolveImageSlideSize(n, this.naturalWidth, this.naturalHeight), r.afterLoad(n));
6296                    r.isClosing || (n.opts.srcset && (t = n.opts.sizes, t && "auto" !== t || (t = (n.width / n.height > 1 && e.width() / e.height() > 1 ? "100" : Math.round(n.width / n.height * 100)) + "vw"), u.attr("sizes", t).attr("srcset", n.opts.srcset)), n.$ghost && setTimeout(function() {
6297                        n.$ghost && !r.isClosing && n.$ghost.hide()
6298                    }, Math.min(300, Math.max(1e3, n.height / 1600))), r.hideLoading(n))
6299                }).addClass("fancybox-image").attr("src", n.src).appendTo(n.$content);
6300                (f.complete || "complete" == f.readyState) && u.naturalWi
6300dth && u.naturalHeight ? u.trigger("load") : f.error && u.trigger("error")
6301            },
6302            resolveImageSlideSize: function(n, t, i) {
6303                var r = parseInt(n.opts.width, 10),
6304                    u = parseInt(n.opts.height, 10);
6305                n.width = t;
6306                n.height = i;
6307                r > 0 && (n.width = r, n.height = Math.floor(r * i / t));
6308                u > 0 && (n.width = Math.floor(u * t / i), n.height = u)
6309            },
6310            setIframe: function(n) {
6311                var u, f = this,
6312                    t = n.opts.iframe,
6313                    r = n.$slide;
6314                n.$content = i('<div class="fancybox-content' + (t.preload ? " fancybox-is-hidden" : "") + '"><\/div>').css(t.css).appendTo(r);
6315                r.addClass("fancybox-slide--" + n.contentType);
6316                n.$iframe = u = i(t.tpl.replace(/\{rnd\}/g, (new Date).getTime())).attr(t.attr).appendTo(n.$content);
6317                t.preload ? (f.showLoading(n), u.on("load.fb error.fb", function() {
6318                    this.isReady = 1;
6319                    n.$slide.trigger("refresh");
6320                    f.afterLoad(n)
6321                }), r.on("refresh.fb", function() {
6322                    var s, i, f = n.$content,
6323                        e = t.css.width,
6324                        o = t.css.height;
6325                    if (1 === u[0].isReady) {
6326                        try {
6327                            s = u.contents();
6328                            i = s.find("body")
6329                        } catch (n) {}
6330                        i && i.length && i.children().length && (r.css("overflow", "visible"), f.css({
6331                            width: "100%",
6332                            "max-width": "100%",
6333                            height: "9999px"
6334                        }), void 0 === e && (e = Math.ceil(Math.max(i[0].clientWidth, i.outerWidth(!0)))), f.css("width", e || "").css("max-width", ""), void 0 === o && (o = Math.ceil(Math.max(i[0].clientHeight, i.outerHeight(!0)))), f.css("height", o || ""), r.css("overflow", "auto"));
6335                        f.removeClass("fancybox-is-hidden")
6336                    }
6337                })) : f.afterLoad(n);
6338                u.attr("src", n.src);
6339                r.one("onReset", function() {
6340                    try {
6341                        i(this).find("iframe").hide().unbind().attr("src", "//about:blank")
6342                    } catch (n) {}
6343                    i(this).off("refresh.fb").empty();
6344                    n.isLoaded = !1;
6345                    n.isRevealed = !1
6346                })
6347            },
6348            setContent: function(n, t) {
6349                var r = this;
6350                r.isClosing || (r.hideLoading(n), n.$content && i.fancybox.stop(n.$content), n.$slide.empty(), v(t) && t.parent().length ? ((t.hasClass("fancybox-content") || t.parent().hasClass("fancybox-content")) && t.parents(".fancybox-slide").trigger("onReset"), n.$placeholder = i("<div>").hide().insertAfter(t), t.css("display", "inline-block")) : n.hasError || ("string" === i.type(t) && (t = i("<div>").append(i.trim(t)).contents()), n.opts.filter && (t = i("<div>").html(t).find(n.opts.filter))), n.$slide.one("onReset", function() {
6351                    i(this).find("video,audio").trigger("pause");
6352                    n.$placeholder && (n.$placeholder.after(t.removeClass("fancybox-content").hide()).remove(), n.$placeholder = null);
6353                    n.$smallBtn && (n.$smallBtn.remove(), n.$smallBtn = null);
6354                    n.hasError || (i(this).empty(), n.isLoaded = !1, n.isRevealed = !1)
6355                }), i(t).appendTo(n.$slide), i(t).is("video,audio") && (i(t).addClass("fancybox-video"), i(t).wrap("<div><\/div>"), n.contentType = "video", n.opts.width = n.opts.width || i(t).attr("width"), n.opts.height = n.opts.height || i(t).attr("height")), n.$content = n.$slide.children().filter("div,form,main,video,audio,article,.fancybox-content").first(), n.$content.siblings().hide(), n.$content.length || (n.$content = n.$slide.wrapInner("<div><\/div>").children().first()), n.$content.addClass("fancybox-content"), n.$slide.addClass("fancybox-slide--" + n.contentType), r.afterLoad(n))
6356            },
6357            setError: function(n) {
6358                n.hasError = !0;
6359                n.$slide.trigger("onReset").removeClass("fancybox-slide--" + n.contentType).addClass("fancybox-slide--error");
6360                n.contentType = "html";
6361                this.setContent(n, this.translate(n, n.opts.errorTpl));
6362                n.pos === this.currPos && (this.isAnimating = !1)
6363            },
6364            showLoading: function(n) {
6365                var t = this;
6366                (n = n || t.current) && !n.$spinner && (n.$spinner = i(t.translate(t, t.opts.spinnerTpl)).appendTo(n.$slide).hide().fadeIn("fast"))
6367            },
6368            hideLoading: function(n) {
6369                var t = this;
6370                (n = n || t.current) && n.$spinner && (n.$spinner.stop().remove(), delete n.$spinner)
6371            },
6372            afterLoad: function(n) {
6373                var t = this;
6374                t.isClosing || (n.isLoading = !1, n.isLoaded = !0, t.trigger("afterLoad", n), t.hideLoading(n), !n.opts.smallBtn || n.$smallBtn && n.$smallBtn.length || (n.$smallBtn = i(t.translate(n, n.opts.btnTpl.smallBtn)).appendTo(n.$content)), n.opts.protect && n.$content && !n.hasError && (n.$content.on("contextmenu.fb", function(n) {
6375                    return 2 == n.button && n.preventDefault(), !0
6376                }), "image" === n.type && i('<div class="fancybox-spaceball"><\/div>').appendTo(n.$content)), t.adjustCaption(n), t.adjustLayout(n), n.pos === t.currPos && t.updateCursor(
vendor: 10,112 bytes, lines 6376-6499
6376), t.revealContent(n))
6377            },
6378            adjustCaption: function(n) {
6379                var i, t = this,
6380                    r = n || t.current,
6381                    u = r.opts.caption,
6382                    o = r.opts.preventCaptionOverlap,
6383                    f = t.$refs.caption,
6384                    e = !1;
6385                f.toggleClass("fancybox-caption--separate", o);
6386                o && u && u.length && (r.pos !== t.currPos ? (i = f.clone().appendTo(f.parent()), i.children().eq(0).empty().html(u), e = i.outerHeight(!0), i.empty().remove()) : t.$caption && (e = t.$caption.outerHeight(!0)), r.$slide.css("padding-bottom", e || ""))
6387            },
6388            adjustLayout: function(n) {
6389                var r, u, f, i, e = this,
6390                    t = n || e.current;
6391                t.isLoaded && !0 !== t.opts.disableLayoutFix && (t.$content.css("margin-bottom", ""), t.$content.outerHeight() > t.$slide.height() + .5 && (f = t.$slide[0].style["padding-bottom"], i = t.$slide.css("padding-bottom"), parseFloat(i) > 0 && (r = t.$slide[0].scrollHeight, t.$slide.css("padding-bottom", 0), Math.abs(r - t.$slide[0].scrollHeight) < 1 && (u = i), t.$slide.css("padding-bottom", f))), t.$content.css("margin-bottom", u))
6392            },
6393            revealContent: function(n) {
6394                var r, c, f, h, t = this,
6395                    s = n.$slide,
6396                    e = !1,
6397                    o = !1,
6398                    l = t.isMoved(n),
6399                    a = n.isRevealed;
6400                return n.isRevealed = !0, r = n.opts[t.firstRun ? "animationEffect" : "transitionEffect"], f = n.opts[t.firstRun ? "animationDuration" : "transitionDuration"], f = parseInt(void 0 === n.forcedDuration ? f : n.forcedDuration, 10), !l && n.pos === t.currPos && f || (r = !1), "zoom" === r && (n.pos === t.currPos && f && "image" === n.type && !n.hasError && (o = t.getThumbPos(n)) ? e = t.getFitPos(n) : r = "fade"), "zoom" === r ? (t.isAnimating = !0, e.scaleX = e.width / o.width, e.scaleY = e.height / o.height, h = n.opts.zoomOpacity, "auto" == h && (h = Math.abs(n.width / n.height - o.width / o.height) > .1), h && (o.opacity = .1, e.opacity = 1), i.fancybox.setTranslate(n.$content.removeClass("fancybox-is-hidden"), o), u(n.$content), void i.fancybox.animate(n.$content, e, f, function() {
6401                    t.isAnimating = !1;
6402                    t.complete()
6403                })) : (t.updateSlide(n), r ? (i.fancybox.stop(s), c = "fancybox-slide--" + (n.pos >= t.prevPos ? "next" : "previous") + " fancybox-animated fancybox-fx-" + r, s.addClass(c).removeClass("fancybox-slide--current"), n.$content.removeClass("fancybox-is-hidden"), u(s), "image" !== n.type && n.$content.hide().show(0), void i.fancybox.animate(s, "fancybox-slide--current", f, function() {
6404                    s.removeClass(c).css({
6405                        transform: "",
6406                        opacity: ""
6407                    });
6408                    n.pos === t.currPos && t.complete()
6409                }, !0)) : (n.$content.removeClass("fancybox-is-hidden"), a || !l || "image" !== n.type || n.hasError || n.$content.hide().fadeIn("fast"), void(n.pos === t.currPos && t.complete())))
6410            },
6411            getThumbPos: function(n) {
6412                var t, u, e, o, f, s = !1,
6413                    r = n.$thumb;
6414                return !(!r || !p(r[0])) && (t = i.fancybox.getTranslate(r), u = parseFloat(r.css("border-top-width") || 0), e = parseFloat(r.css("border-right-width") || 0), o = parseFloat(r.css("border-bottom-width") || 0), f = parseFloat(r.css("border-left-width") || 0), s = {
6415                    top: t.top + u,
6416                    left: t.left + f,
6417                    width: t.width - e - f,
6418                    height: t.height - u - o,
6419                    scaleX: 1,
6420                    scaleY: 1
6421                }, t.width > 0 && t.height > 0 && s)
6422            },
6423            complete: function() {
6424                var r, n = this,
6425                    t = n.current,
6426                    f = {};
6427                !n.isMoved() && t.isLoaded && (t.isComplete || (t.isComplete = !0, t.$slide.siblings().trigger("onReset"), n.preload("inline"), u(t.$slide), t.$slide.addClass("fancybox-slide--complete"), i.each(n.slides, function(t, r) {
6428                    r.pos >= n.currPos - 1 && r.pos <= n.currPos + 1 ? f[r.pos] = r : r && (i.fancybox.stop(r.$slide), r.$slide.off().remove())
6429                }), n.slides = f), n.isAnimating = !1, n.updateCursor(), n.trigger("afterShow"), t.opts.video.autoStart && t.$slide.find("video,audio").filter(":visible:first").trigger("play").one("ended", function() {
6430                    this.webkitExitFullscreen && this.webkitExitFullscreen();
6431                    n.next()
6432                }), t.opts.autoFocus && "html" === t.contentType && (r = t.$content.find("input[autofocus]:enabled:visible:first"), r.length ? r.trigger("focus") : n.focus(null, !0)), t.$slide.scrollTop(0).scrollLeft(0))
6433            },
6434            preload: function(n) {
6435                var i, r, t = this;
6436                t.group.length < 2 || (r = t.slides[t.currPos + 1], i = t.slides[t.currPos - 1], i && i.type === n && t.loadSlide(i), r && r.type === n && t.loadSlide(r))
6437            },
6438            focus: function(n, r) {
6439                var u, e, f = this,
6440                    o = 'a[href],area[href],input:not([disabled]):not([type="hidden"]):not([aria-hidden]),select:not([disabled]):not([aria-hidden]),textarea:not([disabled]):not([aria-hidden]),button:not([disabled]):not([aria-hidden]),iframe,object,embed,video,audio,[contenteditable],[tabindex]:not([tabindex^="-"])';
6441                f.isClosing || (u = !n && f.current && f.current.isComplete ? f.current.$slide.find("*:visible" + (r ? ":not(.fancybox-close-small)" : "")) : f.$refs.container.find("*:visible"), u = u.filter(o).filter(function() {
6442                    return "hidden" !== i(this).css("visibility") && !i(this).hasClass("disabled")
6443                }), u.length ? (e = u.index(t.activeElement), n && n.shiftKey ? (e < 0 || 0 == e) && (n.preventDefault(), u.eq(u.length - 1).trigger("focus")) : (e < 0 || e == u.length - 1) && (n && n.preventDefault(), u.eq(0).trigger("focus"))) : f.$refs.container.trigger("focus"))
6444            },
6445            activate: function() {
6446                var n = this;
6447                i(".fancybox-container").each(function() {
6448                    var t = i(this).data("FancyBox");
6449                    t && t.id !== n.id && !t.isClosing && (t.trigger("onDeactivate"), t.removeEvents(), t.isVisible = !1)
6450                });
6451                n.isVisible = !0;
6452                (n.current || n.isIdle) && (n.update(), n.updateControls());
6453                n.trigger("onActivate");
6454                n.addEvents()
6455            },
6456            close: function(n, t) {
6457                var o, s, h, l, a, y, e, r = this,
6458                    f = r.current,
6459                    v = function() {
6460                        r.cleanUp(n)
6461                    };
6462                return !r.isClosing && (r.isClosing = !0, !1 === r.trigger("beforeClose", n) ? (r.isClosing = !1, c(function() {
6463                    r.update()
6464                }), !1) : (r.removeEvents(), h = f.$content, o = f.opts.animationEffect, s = i.isNumeric(t) ? t : o ? f.opts.animationDuration : 0, f.$slide.removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"), !0 !== n ? i.fancybox.stop(f.$slide) : o = !1, f.$slide.siblings().trigger("onReset").remove(), s && r.$refs.container.removeClass("fancybox-is-open").addClass("fancybox-is-closing").css("transition-duration", s + "ms"), r.hideLoading(f), r.hideControls(!0), r.updateCursor(), "zoom" !== o || h && s && "image" === f.type && !r.isMoved() && !f.hasError && (e = r.getThumbPos(f)) || (o = "fade"), "zoom" === o ? (i.fancybox.stop(h), l = i.fancybox.getTranslate(h), y = {
6465                    top: l.top,
6466                    left: l.left,
6467                    scaleX: l.width / e.width,
6468                    scaleY: l.height / e.height,
6469                    width: e.width,
6470                    height: e.height
6471                }, a = f.opts.zoomOpacity, "auto" == a && (a = Math.abs(f.width / f.height - e.width / e.height) > .1), a && (e.opacity = 0), i.fancybox.setTranslate(h, y), u(h), i.fancybox.animate(h, e, s, v), !0) : (o && s ? i.fancybox.animate(f.$slide.addClass("fancybox-slide--previous").removeClass("fancybox-slide--current"), "fancybox-animated fancybox-fx-" + o, s, v) : !0 === n ? setTimeout(v, s) : v(), !0)))
6472            },
6473            cleanUp: function(t) {
6474                var f, e, o, r = this,
6475                    u = r.current.opts.$orig;
6476                r.current.$slide.trigger("onReset");
6477                r.$refs.container.empty().remove();
6478                r.trigger("afterClose", t);
6479                r.current.opts.backFocus && (u && u.length && u.is(":visible") || (u = r.$trigger), u && u.length && (e = n.scrollX, o = n.scrollY, u.trigger("focus"), i("html, body").scrollTop(o).scrollLeft(e)));
6480                r.current = null;
6481                f = i.fancybox.getInstance();
6482                f ? f.activate() : (i("body").removeClass("fancybox-active compensate-for-scrollbar"), i("#fancybox-style-noscroll").remove())
6483            },
6484            trigger: function(n, t) {
6485                var o, f = Array.prototype.slice.call(arguments, 1),
6486                    e = this,
6487                    u = t && t.opts ? t : e.current;
6488                if (u ? f.unshift(u) : u = e, f.unshift(e), i.isFunction(u.opts[n]) && (o = u.opts[n].apply(u, f)), !1 === o) return o;
6489                "afterClose" !== n && e.$refs ? e.$refs.container.trigger(n + ".fb", f) : r.trigger(n + ".fb", f)
6490            },
6491            updateControls: function() {
6492                var n = this,
6493                    r = n.current,
6494                    f = r.index,
6495                    u = n.$refs.container,
6496                    o = n.$refs.caption,
6497                    e = r.opts.caption;
6498                r.$slide.trigger("refresh");
6499                e && e.length ? (n.$caption = o, o.children().eq(0).html(e)) : n.$caption = null;
6500                n.hasHiddenControls || n.isIdle || n.showControls();
6501                u.find("[data-fancybox-count]").html(n.group.length);
6502                u.find("[data-fancybox-index]").html(f + 1);
6503                u.find("[data-fancybox-prev]").prop("disabled", !r.opts.loop && f <= 0);
6504                u.find("[data-fancybox-next]").prop("disabled", !r.opts.loop && f >= n.group.length - 1);
6505                "image" === r.type ? u.find("[data-fancybox-zoom]").show().end().find("[data-fancybox-download]").attr("href", r.opts.image.src || r.src).show() : r.opts.toolbar && u.find("[data-fancybox-download],[data-fancybox-zoom]").hide();
6506                i(t.activeElement).is(":hidden,[disabled]") && n.$refs.container.trigger("focus")
6507            },
6508            hideControls: function(n) {
6509                var i = this,
6510                    t = ["infobar", "toolbar", "nav"];
6511                !n && i.current.opts.preventCaptionOverlap || t.push("caption");
6512                this.$refs.container.removeClass(t.map(function(n) {
6513                    return "fancybox-show-" + n
6514                }).join(" "));
6515                this.hasHiddenControls = !0
6516            },
6517            showControls: function() {
6518                var n = this,
6519                    t = n.current ? n.current.opts : n.opts,
6520                    i = n.$refs.container;
6521                n.hasHiddenControls = !1;
6522                n.idleSecondsCounter = 0;
6523                i.toggleClass("fancybox-show-toolbar", !(!t.toolbar || !t.buttons)).toggleClass("fancybox-show-infobar", !!(t.infobar && n.group.length > 1)).toggleClass("fancybox-show-caption", !!n.$caption).toggleClass("fancybox-show-nav", !!(t.arrows && n.group.length > 1)).toggleClass("fancybox-is-modal", !!t.modal)
6524            },
6525            toggleControls: function() {
6526                this.hasHiddenControls ? this.showControls() : this.hideControls()
6527            }
6528        });
6529        i.fancybox = {
6530            version: "3.5.6",
6531            defaults: l,
6532            getInstance: function(n) {
6533                var t = i('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"),
6534                    r = Array.prototype.slice.call(arguments, 1);
6535                return t instanceof h && ("string" === i.type(n) ? t[n].apply(t, r) : "function" === i.type(n) && n.apply(t, r), t)
6536            },
6537            open: function(n, t, i) {
6538                return new h(n, t, i)
6539            },
6540            close: function(n) {
6541                var t = this.getInstance();
6542                t && (t.close(), !0 === n && this.close(n))
6543            },
6544            destroy: function() {
6545                this.close(!0);
6546                r.add("body").off("click.fb-start", "**")
6547            },
6548            isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),
6549            use3d: function() {
6550                var i = t.createElement("div");
6551                return n.getComputedStyle && n.getComputedStyle(i) && n.getComputedStyle(i).getPropertyValue("transform") && !(t.documentMode && t.documentMode < 11)
6552            }(),
6553            getTranslate: function(n) {
6554                var t;
6555                return !(!n || !n.length) && (t = n[0].getBoundingClientRect(), {
6556                    top: t.top || 0,
6557                    left: t.left || 0,
6558                    width: t.width,
6559                    height: t.height,
6560                    opacity: parseFloat(n.css("opacity"))
6561                })
6562            },
6563            setTranslate: function(n, t) {
6564                var i = "",
6565                    r = {};
6566                if (n && t) return void 0 === t.left && void 0 === t.top || (i = (void 0 === t.left ? n.position().left : t.left) + "px, " + (void 0 === t.top ? n.position().top : t.top) + "px", i = this.use3d ? "translate3d(" + i + ", 0px)" : "translate(" + i + ")"), void 0 !== t.scaleX && void 0 !== t.scaleY ? i += " scale(" + t.scaleX + ", " + t.scaleY + ")" : void 0 !== t.scaleX && (i += " scaleX(" + t.scaleX + ")"), i.length && (r.transform = i), void 0 !== t.opacity && (r.opacity = t.opacity), void 0 !== t.width && (r.width = t.width), void 0 !== t.height && (r.height = t.height), n.css(r)
6567            },
6568            animate: function(n, t, r, u, f) {
6569                var s, e = this;
6570                i.isFunction(r) && (u = r, r = null);
6571                e.stop(n);
6572                s = e.getTranslate(n);
6573                n.on(o, function(o) {
6574                    o && o.originalEvent && (!n.is(o.originalEvent.target) || "z-index" == o.originalEvent.propertyName) || (e.stop(n), i.isNumeric(r) && n.css("transition-duration", ""), i.isPlainObject(t) ? void 0 !== t.scaleX && void 0 !== t.scaleY && e.setTranslate(n, {
6575                        top: t.top,
6576                        left: t.left,
6577                        width: s.width * t.scaleX,
6578                        height: s.height * t.scaleY,
6579                        scaleX: 1,
6580                        scaleY: 1
6581                    }) : !0 !== f && n.removeClass(t), i.isFunction(u) && u(o))
6582                });
6583                i.isNumeric(r) && n.css("transition-duration", r + "ms");
6584                i.isPlainObject(t) ? (void 0 !== t.scaleX && void 0 !== t.scaleY && (delete t.width, delete t.height, n.parent().hasClass("fancybox-slide--image") && n.parent().addClass("fancybox-is-scaling")), i.fancybox.setTranslate(n, t)) : n.addClass(t);
6585                n.data("timer", setTimeout(function() {
6586                    n.trigger(o)
6587                }, r + 33))
6588            },
6589            stop: function(n, t) {
6590                n && n.length && (clearTimeout(n.data("timer")), t && n.trigger(o), n.off(o).css("transition-duration", ""), n.parent().removeClass("fancybox-is-scaling"))
6591            }
6592        };
6593        i.fn.fancybox = function(n) {
6594            var t;
6595            return n = n || {}
vendor: 24,918 bytes, lines 6595-7064
6595, t = n.selector || !1, t ? i("body").off("click.fb-start", t).on("click.fb-start", t, {
6596                options: n
6597            }, s) : this.off("click.fb-start").on("click.fb-start", {
6598                items: this,
6599                options: n
6600            }, s), this
6601        };
6602        r.on("click.fb-start", "[data-fancybox]", s);
6603        r.on("click.fb-start", "[data-fancybox-trigger]", function() {
6604                i('[data-fancybox="' + i(this).attr("data-fancybox-trigger") + '"]').eq(i(this).attr("data-fancybox-index") || 0).trigger("click.fb-start", {
6605                    $trigger: i(this)
6606                })
6607            }),
6608            function() {
6609                var n = null;
6610                r.on("mousedown mouseup focus blur", ".fancybox-button", function(t) {
6611                    switch (t.type) {
6612                        case "mousedown":
6613                            n = i(this);
6614                            break;
6615                        case "mouseup":
6616                            n = null;
6617                            break;
6618                        case "focusin":
6619                            i(".fancybox-button").removeClass("fancybox-focus");
6620                            i(this).is(n) || i(this).is("[disabled]") || i(this).addClass("fancybox-focus");
6621                            break;
6622                        case "focusout":
6623                            i(".fancybox-button").removeClass("fancybox-focus")
6624                    }
6625                })
6626            }()
6627    }
6628}(window, document, jQuery),
6629function(n) {
6630    "use strict";
6631    var r = {
6632            youtube: {
6633                matcher: /(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,
6634                params: {
6635                    autoplay: 1,
6636                    autohide: 1,
6637                    fs: 1,
6638                    rel: 0,
6639                    hd: 1,
6640                    wmode: "transparent",
6641                    enablejsapi: 1,
6642                    html5: 1
6643                },
6644                paramPlace: 8,
6645                type: "iframe",
6646                url: "https://www.youtube-nocookie.com/embed/$4",
6647                thumb: "https://img.youtube.com/vi/$4/hqdefault.jpg"
6648            },
6649            vimeo: {
6650                matcher: /^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,
6651                params: {
6652                    autoplay: 1,
6653                    hd: 1,
6654                    show_title: 1,
6655                    show_byline: 1,
6656                    show_portrait: 0,
6657                    fullscreen: 1
6658                },
6659                paramPlace: 3,
6660                type: "iframe",
6661                url: "//player.vimeo.com/video/$2"
6662            },
6663            instagram: {
6664                matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
6665                type: "image",
6666                url: "//$1/p/$2/media/?size=l"
6667            },
6668            gmap_place: {
6669                matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,
6670                type: "iframe",
6671                url: function(n) {
6672                    return "//maps.google." + n[2] + "/?ll=" + (n[9] ? n[9] + "&z=" + Math.floor(n[10]) + (n[12] ? n[12].replace(/^\//, "&") : "") : n[12] + "").replace(/\?/, "&") + "&output=" + (n[12] && n[12].indexOf("layer=c") > 0 ? "svembed" : "embed")
6673                }
6674            },
6675            gmap_search: {
6676                matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,
6677                type: "iframe",
6678                url: function(n) {
6679                    return "//maps.google." + n[2] + "/maps?q=" + n[5].replace("query=", "q=").replace("api=1", "") + "&output=embed"
6680                }
6681            }
6682        },
6683        t = function(t, i, r) {
6684            if (t) return r = r || "", "object" === n.type(r) && (r = n.param(r, !0)), n.each(i, function(n, i) {
6685                t = t.replace("$" + n, i || "")
6686            }), r.length && (t += (t.indexOf("?") > 0 ? "&" : "?") + r), t
6687        },
6688        i;
6689    n(document).on("objectNeedsType.fb", function(i, u, f) {
6690        var v, y, s, c, e, a, l, o = f.src || "",
6691            h = !1;
6692        v = n.extend(!0, {}, r, f.opts.media);
6693        n.each(v, function(i, r) {
6694            var u, v;
6695            if (s = o.match(r.matcher)) {
6696                if (h = r.type, l = i, a = {}, r.paramPlace && s[r.paramPlace])
6697                    for (e = s[r.paramPlace], "?" == e[0] && (e = e.substring(1)), e = e.split("&"), u = 0; u < e.length; ++u) v = e[u].split("=", 2), 2 == v.length && (a[v[0]] = decodeURIComponent(v[1].replace(/\+/g, " ")));
6698                return c = n.extend(!0, {}, r.params, f.opts[i], a), o = "function" === n.type(r.url) ? r.url.call(this, s, c, f) : t(r.url, s, c), y = "function" === n.type(r.thumb) ? r.thumb.call(this, s, c, f) : t(r.thumb, s), "youtube" === i ? o = o.replace(/&t=((\d+)m)?(\d+)s/, function(n, t, i, r) {
6699                    return "&start=" + ((i ? 60 * parseInt(i, 10) : 0) + parseInt(r, 10))
6700                }) : "vimeo" === i && (o = o.replace("&%23", "#")), !1
6701            }
6702        });
6703        h ? (f.opts.thumb || f.opts.$thumb && f.opts.$thumb.length || (f.opts.thumb = y), "iframe" === h && (f.opts = n.extend(!0, f.opts, {
6704            iframe: {
6705                preload: !1,
6706                attr: {
6707                    scrolling: "no"
6708                }
6709            }
6710        })), n.extend(f, {
6711            type: h,
6712            src: o,
6713            origSrc: f.src,
6714            contentSource: l,
6715            contentType: "image" === h ? "image" : "gmap_place" == l || "gmap_search" == l ? "map" : "video"
6716        })) : o && (f.type = f.opts.defaultType)
6717    });
6718    i = {
6719        youtube: {
6720            src: "https://www.youtube.com/iframe_api",
6721            "class": "YT",
6722            loading: !1,
6723            loaded: !1
6724        },
6725        vimeo: {
6726            src: "https://player.vimeo.com/api/player.js",
6727            "class": "Vimeo",
6728            loading: !1,
6729            loaded: !1
6730        },
6731        load: function(n) {
6732            var t, i = this;
6733            if (this[n].loaded) return void setTimeout(function() {
6734                i.done(n)
6735            });
6736            this[n].loading || (this[n].loading = !0, t = document.createElement("script"), t.type = "text/javascript", t.src = this[n].src, "youtube" === n ? window.onYouTubeIframeAPIReady = function() {
6737                i[n].loaded = !0;
6738                i.done(n)
6739            } : t.onload = function() {
6740                i[n].loaded = !0;
6741                i.done(n)
6742            }, document.body.appendChild(t))
6743        },
6744        done: function(t) {
6745            var i, r, u;
6746            "youtube" === t && delete window.onYouTubeIframeAPIReady;
6747            (i = n.fancybox.getInstance()) && (r = i.current.$content.find("iframe"), "youtube" === t && void 0 !== YT && YT ? u = new YT.Player(r.attr("id"), {
6748                events: {
6749                    onStateChange: function(n) {
6750                        0 == n.data && i.next()
6751                    }
6752                }
6753            }) : "vimeo" === t && void 0 !== Vimeo && Vimeo && (u = new Vimeo.Player(r), u.on("ended", function() {
6754                i.next()
6755            })))
6756        }
6757    };
6758    n(document).on({
6759        "afterShow.fb": function(n, t, r) {
6760            t.group.length > 1 && ("youtube" === r.contentSource || "vimeo" === r.contentSource) && i.load(r.contentSource)
6761        }
6762    })
6763}(jQuery),
6764function(n, t, i) {
6765    "use strict";
6766    var o = function() {
6767            return n.requestAnimationFrame || n.webkitRequestAnimationFrame || n.mozRequestAnimationFrame || n.oRequestAnimationFrame || function(t) {
6768                return n.setTimeout(t, 1e3 / 60)
6769            }
6770        }(),
6771        f = function() {
6772            return n.cancelAnimationFrame || n.webkitCancelAnimationFrame || n.mozCancelAnimationFrame || n.oCancelAnimationFrame || function(t) {
6773                n.clearTimeout(t)
6774            }
6775        }(),
6776        e = function(t) {
6777            var r = [],
6778                i;
6779            t = t.originalEvent || t || n.e;
6780            t = t.touches && t.touches.length ? t.touches : t.changedTouches && t.changedTouches.length ? t.changedTouches : [t];
6781            for (i in t) t[i].pageX ? r.push({
6782                x: t[i].pageX,
6783                y: t[i].pageY
6784            }) : t[i].clientX && r.push({
6785                x: t[i].clientX,
6786                y: t[i].clientY
6787            });
6788            return r
6789        },
6790        u = function(n, t, i) {
6791            return t && n ? "x" === i ? n.x - t.x : "y" === i ? n.y - t.y : Math.sqrt(Math.pow(n.x - t.x, 2) + Math.pow(n.y - t.y, 2)) : 0
6792        },
6793        s = function(n) {
6794            if (n.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe') || i.isFunction(n.get(0).onclick) || n.data("selectable")) return !0;
6795            for (var t = 0, r = n[0].attributes, u = r.length; t < u; t++)
6796                if ("data-fancybox-" === r[t].nodeName.substr(0, 14)) return !0;
6797            return !1
6798        },
6799        c = function(t) {
6800            var i = n.getComputedStyle(t)["overflow-y"],
6801                r = n.getComputedStyle(t)["overflow-x"],
6802                u = ("scroll" === i || "auto" === i) && t.scrollHeight > t.clientHeight,
6803                f = ("scroll" === r || "auto" === r) && t.scrollWidth > t.clientWidth;
6804            return u || f
6805        },
6806        h = function(n) {
6807            for (var t = !1;;) {
6808                if (t = c(n.get(0))) break;
6809                if (n = n.parent(), !n.length || n.hasClass("fancybox-stage") || n.is("body")) break
6810            }
6811            return t
6812        },
6813        r = function(n) {
6814            var t = this;
6815            t.instance = n;
6816            t.$bg = n.$refs.bg;
6817            t.$stage = n.$refs.stage;
6818            t.$container = n.$refs.container;
6819            t.destroy();
6820            t.$container.on("touchstart.fb.touch mousedown.fb.touch", i.proxy(t, "ontouchstart"))
6821        };
6822    r.prototype.destroy = function() {
6823        var n = this;
6824        n.$container.off(".fb.touch");
6825        i(t).off(".fb.touch");
6826        n.requestId && (f(n.requestId), n.requestId = null);
6827        n.tapped && (clearTimeout(n.tapped), n.tapped = null)
6828    };
6829    r.prototype.ontouchstart = function(r) {
6830        var f = this,
6831            o = i(r.target),
6832            l = f.instance,
6833            c = l.current,
6834            a = c.$slide,
6835            y = c.$content,
6836            v = "touchstart" == r.type;
6837        if (v && f.$container.off("mousedown.fb.touch"), (!r.originalEvent || 2 != r.originalEvent.button) && a.length && o.length && !s(o) && !s(o.parent()) && (o.is("img") || !(r.originalEvent.clientX > o[0].clientWidth + o.offset().left))) {
6838            if (!c || l.isAnimating || c.$slide.hasClass("fancybox-animated")) return r.stopPropagation(), void r.preventDefault();
6839            f.realPoints = f.startPoints = e(r);
6840            f.startPoints.length && (c.touch && r.stopPropagation(), f.startEvent = r, f.canTap = !0, f.$target = o, f.$content = y, f.opts = c.opts.touch, f.isPanning = !1, f.isSwiping = !1, f.isZooming = !1, f.isScrolling = !1, f.canPan = l.canPan(), f.startTime = (new Date).getTime(), f.distanceX = f.distanceY = f.distance = 0, f.canvasWidth = Math.round(a[0].clientWidth), f.canvasHeight = Math.round(a[0].clientHeight), f.contentLastPos = null, f.contentStartPos = i.fancybox.getTranslate(f.$content) || {
6841                top: 0,
6842                left: 0
6843            }, f.sliderStartPos = i.fancybox.getTranslate(a), f.stagePos = i.fancybox.getTranslate(l.$refs.stage), f.sliderStartPos.top -= f.stagePos.top, f.sliderStartPos.left -= f.stagePos.left, f.contentStartPos.top -= f.stagePos.top, f.contentStartPos.left -= f.stagePos.left, i(t).off(".fb.touch").on(v ? "touchend.fb.touch touchcancel.fb.touch" : "mouseup.fb.touch mouseleave.fb.touch", i.proxy(f, "ontouchend")).on(v ? "touchmove.fb.touch" : "mousemove.fb.touch", i.proxy(f, "ontouchmove")), i.fancybox.isMobile && t.addEventListener("scroll", f.onscroll, !0), ((f.opts || f.canPan) && (o.is(f.$stage) || f.$stage.find(o).length) || (o.is(".fancybox-image") && r.preventDefault(), i.fancybox.isMobile && o.parents(".fancybox-caption").length)) && (f.isScrollable = h(o) || h(o.parent()), i.fancybox.isMobile && f.isScrollable || r.preventDefault(), (1 === f.startPoints.length || c.hasError) && (f.canPan ? (i.fancybox.stop(f.$content), f.isPanning = !0) : f.isSwiping = !0, f.$container.addClass("fancybox-is-grabbing")), 2 === f.startPoints.length && "image" === c.type && (c.isLoaded || c.$ghost) && (f.canTap = !1, f.isSwiping = !1, f.isPanning = !1, f.isZooming = !0, i.fancybox.stop(f.$content), f.centerPointStartX = .5 * (f.startPoints[0].x + f.startPoints[1].x) - i(n).scrollLeft(), f.centerPointStartY = .5 * (f.startPoints[0].y + f.startPoints[1].y) - i(n).scrollTop(), f.percentageOfImageAtPinchPointX = (f.centerPointStartX - f.contentStartPos.left) / f.contentStartPos.width, f.percentageOfImageAtPinchPointY = (f.centerPointStartY - f.contentStartPos.top) / f.contentStartPos.height, f.startDistanceBetweenFingers = u(f.startPoints[0], f.startPoints[1]))))
6844        }
6845    };
6846    r.prototype.onscroll = function() {
6847        var n = this;
6848        n.isScrolling = !0;
6849        t.removeEventListener("scroll", n.onscroll, !0)
6850    };
6851    r.prototype.ontouchmove = function(n) {
6852        var t = this;
6853        return void 0 !== n.originalEvent.buttons && 0 === n.originalEvent.buttons ? void t.ontouchend(n) : t.isScrolling ? void(t.canTap = !1) : (t.newPoints = e(n), void((t.opts || t.canPan) && t.newPoints.length && t.newPoints.length && (t.isSwiping && !0 === t.isSwiping || n.preventDefault(), t.distanceX = u(t.newPoints[0], t.startPoints[0], "x"), t.distanceY = u(t.newPoints[0], t.startPoints[0], "y"), t.distance = u(t.newPoints[0], t.startPoints[0]), t.distance > 0 && (t.isSwiping ? t.onSwipe(n) : t.isPanning ? t.onPan() : t.isZooming && t.onZoom()))))
6854    };
6855    r.prototype.onSwipe = function() {
6856        var e, t = this,
6857            r = t.instance,
6858            s = t.isSwiping,
6859            u = t.sliderStartPos.left || 0;
6860        if (!0 !== s) "x" == s && (t.distanceX > 0 && (t.instance.group.length < 2 || 0 === t.instance.current.index && !t.instance.current.opts.loop) ? u += Math.pow(t.distanceX, .8) : t.distanceX < 0 && (t.instance.group.length < 2 || t.instance.current.index === t.instance.group.length - 1 && !t.instance.current.opts.loop) ? u -= Math.pow(-t.distanceX, .8) : u += t.distanceX), t.sliderLastPos = {
6861            top: "x" == s ? 0 : t.sliderStartPos.top + t.distanceY,
6862            left: u
6863        }, t.requestId && (f(t.requestId), t.requestId = null), t.requestId = o(function() {
6864            t.sliderLastPos && (i.each(t.instance.slides, function(n, r) {
6865                var u = r.pos - t.instance.currPos;
6866                i.fancybox.setTranslate(r.$slide, {
6867                    top: t.sliderLastPos.top,
6868                    left: t.sliderLastPos.left + u * t.canvasWidth + u * r.opts.gutter
6869                })
6870            }), t.$container.addClass("fancybox-is-sliding"))
6871        });
6872        else if (Math.abs(t.distance) > 10) {
6873            if (t.canTap = !1, r.group.length < 2 && t.opts.vertical ? t.isSwiping = "y" : r.isDragging || !1 === t.opts.vertical || "auto" === t.opts.vertical && i(n).width() > 800 ? t.isSwiping = "x" : (e = Math.abs(180 * Math.atan2(t.distanceY, t.distanceX) / Math.PI), t.isSwiping = e > 45 && e < 135 ? "y" : "x"), "y" === t.isSwiping && i.fancybox.isMobile && t.isScrollable) return void(t.isScrolling = !0);
6874            r.isDragging = t.isSwiping;
6875            t.startPoints = t.newPoints;
6876            i.each(r.slides, function(n, u) {
6877                var f, e;
6878                i.fancybox.stop(u.$slide);
6879                f = i.fancybox.getTranslate(u.$slide);
6880                e = i.fancybox.getTranslate(r.$refs.stage);
6881                u.$slide.css({
6882                    transform: "",
6883                    opacity: "",
6884                    "transition-duration": ""
6885                }).removeClass("fancybox-animated").removeClass(function(n, t) {
6886                    return (t.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" ")
6887                });
6888                u.pos === r.current.pos && (t.sliderStartPos.top = f.top - e.top, t.sliderStartPos.left = f.left - e.left);
6889                i.fancybox.setTranslate(u.$slide, {
6890                    top: f.top - e.top,
6891                    left: f.left - e.left
6892                })
6893            });
6894            r.SlideShow && r.SlideShow.isActive && r.SlideShow.stop()
6895        }
6896    };
6897    r.prototype.onPan = function() {
6898        var n = this;
6899        if (u(n.newPoints[0], n.realPoints[0]) < (i.fancybox.isMobile ? 10 : 5)) return void(n.startPoints = n.newPoints);
6900        n.canTap = !1;
6901        n.contentLastPos = n.limitMovement();
6902        n.requestId && f(n.requestId);
6903        n.requestId = o(function() {
6904            i.fancybox.setTranslate(n.$content, n.contentLastPos)
6905        })
6906    };
6907    r.prototype.limitMovement = function() {
6908        var f, e, o, s, n, t, i = this,
6909            h = i.canvasWidth,
6910            v = i.canvasHeight,
6911            r = i.distanceX,
6912            u = i.distanceY,
6913            c = i.contentStartPos,
6914            l = c.left,
6915            y = c.top,
6916            a = c.width,
6917            p = c.height;
6918        return n = a > h ? l + r : l, t = y + u, f = Math.max(0, .5 * h - .5 * a), e = Math.max(0, .5 * v - .5 * p), o = Math.min(h - a, .5 * h - .5 * a), s = Math.min(v - p, .5 * v - .5 * p), r > 0 && n > f && (n = f - 1 + Math.pow(-f + l + r, .8) || 0), r < 0 && n < o && (n = o + 1 - Math.pow(o - l - r, .8) || 0), u > 0 && t > e && (t = e - 1 + Math.pow(-e + y + u, .8) || 0), u < 0 && t < s && (t = s + 1 - Math.pow(s - y - u, .8) || 0), {
6919            top: t,
6920            left: n
6921        }
6922    };
6923    r.prototype.limitPosition = function(n, t, i, r) {
6924        var e = this,
6925            u = e.canvasWidth,
6926            f = e.canvasHeight;
6927        return i > u ? (n = n > 0 ? 0 : n, n = n < u - i ? u - i : n) : n = Math.max(0, u / 2 - i / 2), r > f ? (t = t > 0 ? 0 : t, t = t < f - r ? f - r : t) : t = Math.max(0, f / 2 - r / 2), {
6928            top: t,
6929            left: n
6930        }
6931    };
6932    r.prototype.onZoom = function() {
6933        var t = this,
6934            r = t.contentStartPos,
6935            s = r.width,
6936            h = r.height,
6937            a = r.left,
6938            v = r.top,
6939            y = u(t.newPoints[0], t.newPoints[1]),
6940            e = y / t.startDistanceBetweenFingers,
6941            c = Math.floor(s * e),
6942            l = Math.floor(h * e),
6943            p = (s - c) * t.percentageOfImageAtPinchPointX,
6944            w = (h - l) * t.percentageOfImageAtPinchPointY,
6945            b = (t.newPoints[0].x + t.newPoints[1].x) / 2 - i(n).scrollLeft(),
6946            k = (t.newPoints[0].y + t.newPoints[1].y) / 2 - i(n).scrollTop(),
6947            d = b - t.centerPointStartX,
6948            g = k - t.centerPointStartY,
6949            nt = a + (p + d),
6950            tt = v + (w + g),
6951            it = {
6952                top: tt,
6953                left: nt,
6954                scaleX: e,
6955                scaleY: e
6956            };
6957        t.canTap = !1;
6958        t.newWidth = c;
6959        t.newHeight = l;
6960        t.contentLastPos = it;
6961        t.requestId && f(t.requestId);
6962        t.requestId = o(function() {
6963            i.fancybox.setTranslate(t.$content, t.contentLastPos)
6964        })
6965    };
6966    r.prototype.ontouchend = function(n) {
6967        var r = this,
6968            u = r.isSwiping,
6969            o = r.isPanning,
6970            s = r.isZooming,
6971            h = r.isScrolling;
6972        if (r.endPoints = e(n), r.dMs = Math.max((new Date).getTime() - r.startTime, 1), r.$container.removeClass("fancybox-is-grabbing"), i(t).off(".fb.touch"), t.removeEventListener("scroll", r.onscroll, !0), r.requestId && (f(r.requestId), r.requestId = null), r.isSwiping = !1, r.isPanning = !1, r.isZooming = !1, r.isScrolling = !1, r.instance.isDragging = !1, r.canTap) return r.onTap(n);
6973        r.speed = 100;
6974        r.velocityX = r.distanceX / r.dMs * .5;
6975        r.velocityY = r.distanceY / r.dMs * .5;
6976        o ? r.endPanning() : s ? r.endZooming() : r.endSwiping(u, h)
6977    };
6978    r.prototype.endSwiping = function(n, t) {
6979        var r = this,
6980            u = !1,
6981            o = r.instance.group.length,
6982            f = Math.abs(r.distanceX),
6983            e = "x" == n && o > 1 && (r.dMs > 130 && f > 10 || f > 50);
6984        r.sliderLastPos = null;
6985        "y" == n && !t && Math.abs(r.distanceY) > 50 ? (i.fancybox.animate(r.instance.current.$slide, {
6986            top: r.sliderStartPos.top + r.distanceY + 150 * r.velocityY,
6987            opacity: 0
6988        }, 200), u = r.instance.close(!0, 250)) : e && r.distanceX > 0 ? u = r.instance.previous(300) : e && r.distanceX < 0 && (u = r.instance.next(300));
6989        !1 !== u || "x" != n && "y" != n || r.instance.centerSlide(200);
6990        r.$container.removeClass("fancybox-is-sliding")
6991    };
6992    r.prototype.endPanning = function() {
6993        var r, u, t, n = this;
6994        n.contentLastPos && (!1 === n.opts.momentum || n.dMs > 350 ? (r = n.contentLastPos.left, u = n.contentLastPos.top) : (r = n.contentLastPos.left + 500 * n.velocityX, u = n.contentLastPos.top + 500 * n.velocityY), t = n.limitPosition(r, u, n.contentStartPos.width, n.contentStartPos.height), t.width = n.contentStartPos.width, t.height = n.contentStartPos.height, i.fancybox.animate(n.$content, t, 366))
6995    };
6996    r.prototype.endZooming = function() {
6997        var u, f, e, o, n = this,
6998            s = n.instance.current,
6999            t = n.newWidth,
7000            r = n.newHeight;
7001        n.contentLastPos && (u = n.contentLastPos.left, f = n.contentLastPos.top, o = {
7002            top: f,
7003            left: u,
7004            width: t,
7005            height: r,
7006            scaleX: 1,
7007            scaleY: 1
7008        }, i.fancybox.setTranslate(n.$content, o), t < n.canvasWidth && r < n.canvasHeight ? n.instance.scaleToFit(150) : t > s.width || r > s.height ? n.instance.scaleToActual(n.centerPointStartX, n.centerPointStartY, 150) : (e = n.limitPosition(u, f, t, r), i.fancybox.animate(n.$content, e, 150)))
7009    };
7010    r.prototype.onTap = function(t) {
7011        var f, u = this,
7012            s = i(t.target),
7013            r = u.instance,
7014            o = r.current,
7015            h = t && e(t) || u.startPoints,
7016            c = h[0] ? h[0].x - i(n).scrollLeft() - u.stagePos.left : 0,
7017            l = h[0] ? h[0].y - i(n).scrollTop() - u.stagePos.top : 0,
7018            a = function(n) {
7019                var f = o.opts[n];
7020                if (i.isFunction(f) && (f = f.apply(r, [o, t])), f) switch (f) {
7021                    case "close":
7022                        r.close(u.startEvent);
7023                        break;
7024                    case "toggleControls":
7025                        r.toggleControls();
7026                        break;
7027                    case "next":
7028                        r.next();
7029                        break;
7030                    case "nextOrClose":
7031                        r.group.length > 1 ? r.next() : r.close(u.startEvent);
7032                        break;
7033                    case "zoom":
7034                        "image" == o.type && (o.isLoaded || o.$ghost) && (r.canPan() ? r.scaleToFit() : r.isScaledDown() ? r.scaleToActual(c, l) : r.group.length < 2 && r.close(u.startEvent))
7035                }
7036            };
7037        if ((!t.originalEvent || 2 != t.originalEvent.button) && (s.is("img") || !(c > s[0].clientWidth + s.offset().left))) {
7038            if (s.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container")) f = "Outside";
7039            else if (s.is(".fancybox-slide")) f = "Slide";
7040            else {
7041                if (!r.current.$content || !r.current.$content.find(s).addBack().filter(s).length) return;
7042                f = "Content"
7043            }
7044            if (u.tapped) {
7045                if (clearTimeout(u.tapped), u.tapped = null, Math.abs(c - u.tapX) > 50 || Math.abs(l - u.tapY) > 50) return this;
7046                a("dblclick" + f)
7047            } else u.tapX = c, u.tapY = l, o.opts["dblclick" + f] && o.opts["dblclick" + f] !== o.opts["click" + f] ? u.tapped = setTimeout(function() {
7048                u.tapped = null;
7049                r.isAnimating || a("click" + f)
7050            }, 500) : a("click" + f);
7051            return this
7052        }
7053    };
7054    i(t).on("onActivate.fb", function(n, t) {
7055        t && !t.Guestures && (t.Guestures = new r(t))
7056    }).on("beforeClose.fb", function(n, t) {
7057        t && t.Guestures && t.Guestures.destroy()
7058    })
7059}(window, document, jQuery),
7060function(n, t) {
7061    "use strict";
7062    t.extend(!0, t.fancybox.defaults, {
7063        btnTpl: {
7064            slideShow: '<button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
7064<path d="M6.5 5.4v13.2l11-6.6z"/><\/svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.33 5.75h2.2v12.5h-2.2V5.75zm5.15 0h2.2v12.5h-2.2V5.75z"/><\/svg><\/button>'
7065        },
7066        slideShow: {
7067            autoStart: !1,
7068            speed: 3e3,
7069            progress: !0
7070        }
7071    });
7072    var i = function(n) {
7073        this.instance = n;
7074        this.init()
7075    };
7076    t.extend(i.prototype, {
7077        timer: null,
7078        isActive: !1,
7079        $button: null,
7080        init: function() {
7081            var n = this,
7082                i = n.instance,
7083                r = i.group[i.currIndex].opts.slideShow;
7084            n.$button = i.$refs.toolbar.find("[data-fancybox-play]").on("click", function() {
7085                n.toggle()
7086            });
7087            i.group.length < 2 || !r ? n.$button.hide() : r.progress && (n.$progress = t('<div class="fancybox-progress"><\/div>').appendTo(i.$refs.inner))
7088        },
7089        set: function(n) {
7090            var r = this,
7091                i = r.instance,
7092                u = i.current;
7093            u && (!0 === n || u.opts.loop || i.currIndex < i.group.length - 1) ? r.isActive && "video" !== u.contentType && (r.$progress && t.fancybox.animate(r.$progress.show(), {
7094                scaleX: 1
7095            }, u.opts.slideShow.speed), r.timer = setTimeout(function() {
7096                i.current.opts.loop || i.current.index != i.group.length - 1 ? i.next() : i.jumpTo(0)
7097            }, u.opts.slideShow.speed)) : (r.stop(), i.idleSecondsCounter = 0, i.showControls())
7098        },
7099        clear: function() {
7100            var n = this;
7101            clearTimeout(n.timer);
7102            n.timer = null;
7103            n.$progress && n.$progress.removeAttr("style").hide()
7104        },
7105        start: function() {
7106            var n = this,
7107                t = n.instance.current;
7108            t && (n.$button.attr("title", (t.opts.i18n[t.opts.lang] || t.opts.i18n.en).PLAY_STOP).removeClass("fancybox-button--play").addClass("fancybox-button--pause"), n.isActive = !0, t.isComplete && n.set(!0), n.instance.trigger("onSlideShowChange", !0))
7109        },
7110        stop: function() {
7111            var n = this,
7112                t = n.instance.current;
7113            n.clear();
7114            n.$button.attr("title", (t.opts.i18n[t.opts.lang] || t.opts.i18n.en).PLAY_START).removeClass("fancybox-button--pause").addClass("fancybox-button--play");
7115            n.isActive = !1;
7116            n.instance.trigger("onSlideShowChange", !1);
7117            n.$progress && n.$progress.removeAttr("style").hide()
7118        },
7119        toggle: function() {
7120            var n = this;
7121            n.isActive ? n.stop() : n.start()
7122        }
7123    });
7124    t(n).on({
7125        "onInit.fb": function(n, t) {
7126            t && !t.SlideShow && (t.SlideShow = new i(t))
7127        },
7128        "beforeShow.fb": function(n, t, i, r) {
7129            var u = t && t.SlideShow;
7130            r ? u && i.opts.slideShow.autoStart && u.start() : u && u.isActive && u.clear()
7131        },
7132        "afterShow.fb": function(n, t) {
7133            var i = t && t.SlideShow;
7134            i && i.isActive && i.set()
7135        },
7136        "afterKeydown.fb": function(i, r, u, f, e) {
7137            var o = r && r.SlideShow;
7138            o && u.opts.slideShow && (80 === e || 32 === e) && !t(n.activeElement).is("button,a,input") && (f.preventDefault(), o.toggle())
7139        },
7140        "beforeClose.fb onDeactivate.fb": function(n, t) {
7141            var i = t && t.SlideShow;
7142            i && i.stop()
7143        }
7144    });
7145    t(n).on("visibilitychange", function() {
7146        var r = t.fancybox.getInstance(),
7147            i = r && r.SlideShow;
7148        i && i.isActive && (n.hidden ? i.clear() : i.set())
7149    })
7150}(document, jQuery),
7151function(n, t) {
7152    "use strict";
7153    var i = function() {
7154            for (var t, i, r = [
7155                    ["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"],
7156                    ["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror"],
7157                    ["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitCurrentFullScreenElement", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitfullscreenerror"],
7158                    ["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror"],
7159                    ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"]
7160                ], f = {}, u = 0; u < r.length; u++)
7161                if (t = r[u], t && t[1] in n) {
7162                    for (i = 0; i < t.length; i++) f[r[0][i]] = t[i];
7163                    return f
7164                }
7165            return !1
7166        }(),
7167        r;
7168    i && (r = {
7169        request: function(t) {
7170            t = t || n.documentElement;
7171            t[i.requestFullscreen](t.ALLOW_KEYBOARD_INPUT)
7172        },
7173        exit: function() {
7174            n[i.exitFullscreen]()
7175        },
7176        toggle: function(t) {
7177            t = t || n.documentElement;
7178            this.isFullscreen() ? this.exit() : this.request(t)
7179        },
7180        isFullscreen: function() {
7181            return Boolean(n[i.fullscreenElement])
7182        },
7183        enabled: function() {
7184            return Boolean(n[i.fullscreenEnabled])
7185        }
7186    }, t.extend(!0, t.fancybox.defaults, {
7187        btnTpl: {
7188            fullScreen: '<button data-fancybox-fullscreen class="fancybox-button fancybox-button--fsenter" title="{{FULL_SCREEN}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
vendor: 11,131 bytes, lines 7188-7393
7188<path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/><\/svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 16h3v3h2v-5H5zm3-8H5v2h5V5H8zm6 11h2v-3h3v-2h-5zm2-11V5h-2v5h5V8z"/><\/svg><\/button>'
7189        },
7190        fullScreen: {
7191            autoStart: !1
7192        }
7193    }), t(n).on(i.fullscreenchange, function() {
7194        var i = r.isFullscreen(),
7195            n = t.fancybox.getInstance();
7196        n && (n.current && "image" === n.current.type && n.isAnimating && (n.isAnimating = !1, n.update(!0, !0, 0), n.isComplete || n.complete()), n.trigger("onFullscreenChange", i), n.$refs.container.toggleClass("fancybox-is-fullscreen", i), n.$refs.toolbar.find("[data-fancybox-fullscreen]").toggleClass("fancybox-button--fsenter", !i).toggleClass("fancybox-button--fsexit", i))
7197    }));
7198    t(n).on({
7199        "onInit.fb": function(n, t) {
7200            var u;
7201            if (!i) return void t.$refs.toolbar.find("[data-fancybox-fullscreen]").remove();
7202            t && t.group[t.currIndex].opts.fullScreen ? (u = t.$refs.container, u.on("click.fb-fullscreen", "[data-fancybox-fullscreen]", function(n) {
7203                n.stopPropagation();
7204                n.preventDefault();
7205                r.toggle()
7206            }), t.opts.fullScreen && !0 === t.opts.fullScreen.autoStart && r.request(), t.FullScreen = r) : t && t.$refs.toolbar.find("[data-fancybox-fullscreen]").hide()
7207        },
7208        "afterKeydown.fb": function(n, t, i, r, u) {
7209            t && t.FullScreen && 70 === u && (r.preventDefault(), t.FullScreen.toggle())
7210        },
7211        "beforeClose.fb": function(n, t) {
7212            t && t.FullScreen && t.$refs.container.hasClass("fancybox-is-fullscreen") && r.exit()
7213        }
7214    })
7215}(document, jQuery),
7216function(n, t) {
7217    "use strict";
7218    var i = "fancybox-thumbs",
7219        r;
7220    t.fancybox.defaults = t.extend(!0, {
7221        btnTpl: {
7222            thumbs: '<button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.59 14.59h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76H5.65V5.65z"/><\/svg><\/button>'
7223        },
7224        thumbs: {
7225            autoStart: !1,
7226            hideOnClose: !0,
7227            parentEl: ".fancybox-container",
7228            axis: "y"
7229        }
7230    }, t.fancybox.defaults);
7231    r = function(n) {
7232        this.init(n)
7233    };
7234    t.extend(r.prototype, {
7235        $button: null,
7236        $grid: null,
7237        $list: null,
7238        isVisible: !1,
7239        isActive: !1,
7240        init: function(n) {
7241            var t = this,
7242                r = n.group,
7243                u = 0,
7244                i, f;
7245            for (t.instance = n, t.opts = r[n.currIndex].opts.thumbs, n.Thumbs = t, t.$button = n.$refs.toolbar.find("[data-fancybox-thumbs]"), i = 0, f = r.length; i < f && (r[i].thumb && u++, !(u > 1)); i++);
7246            u > 1 && t.opts ? (t.$button.removeAttr("style").on("click", function() {
7247                t.toggle()
7248            }), t.isActive = !0) : t.$button.hide()
7249        },
7250        create: function() {
7251            var r, n = this,
7252                u = n.instance,
7253                f = n.opts.parentEl,
7254                e = [];
7255            n.$grid || (n.$grid = t('<div class="' + i + " " + i + "-" + n.opts.axis + '"><\/div>').appendTo(u.$refs.container.find(f).addBack().filter(f)), n.$grid.on("click", "a", function() {
7256                u.jumpTo(t(this).attr("data-index"))
7257            }));
7258            n.$list || (n.$list = t('<div class="' + i + '__list">').appendTo(n.$grid));
7259            t.each(u.group, function(n, t) {
7260                r = t.thumb;
7261                r || "image" !== t.type || (r = t.src);
7262                e.push('<a href="javascript:;" tabindex="0" data-index="' + n + '"' + (r && r.length ? ' style="background-image:url(' + r + ')"' : 'class="fancybox-thumbs-missing"') + "><\/a>")
7263            });
7264            n.$list[0].innerHTML = e.join("");
7265            "x" === n.opts.axis && n.$list.width(parseInt(n.$grid.css("padding-right"), 10) + u.group.length * n.$list.children().eq(0).outerWidth(!0))
7266        },
7267        focus: function(n) {
7268            var u, t, i = this,
7269                r = i.$list,
7270                f = i.$grid;
7271            i.instance.current && (u = r.children().removeClass("fancybox-thumbs-active").filter('[data-index="' + i.instance.current.index + '"]').addClass("fancybox-thumbs-active"), t = u.position(), "y" === i.opts.axis && (t.top < 0 || t.top > r.height() - u.outerHeight()) ? r.stop().animate({
7272                scrollTop: r.scrollTop() + t.top
7273            }, n) : "x" === i.opts.axis && (t.left < f.scrollLeft() || t.left > f.scrollLeft() + (f.width() - u.outerWidth())) && r.parent().stop().animate({
7274                scrollLeft: t.left
7275            }, n))
7276        },
7277        update: function() {
7278            var n = this;
7279            n.instance.$refs.container.toggleClass("fancybox-show-thumbs", this.isVisible);
7280            n.isVisible ? (n.$grid || n.create(), n.instance.trigger("onThumbsShow"), n.focus(0)) : n.$grid && n.instance.trigger("onThumbsHide");
7281            n.instance.update()
7282        },
7283        hide: function() {
7284            this.isVisible = !1;
7285            this.update()
7286        },
7287        show: function() {
7288            this.isVisible = !0;
7289            this.update()
7290        },
7291        toggle: function() {
7292            this.isVisible = !this.isVisible;
7293            this.update()
7294        }
7295    });
7296    t(n).on({
7297        "onInit.fb": function(n, t) {
7298            var i;
7299            t && !t.Thumbs && (i = new r(t), i.isActive && !0 === i.opts.autoStart && i.show())
7300        },
7301        "beforeShow.fb": function(n, t, i, r) {
7302            var u = t && t.Thumbs;
7303            u && u.isVisible && u.focus(r ? 0 : 250)
7304        },
7305        "afterKeydown.fb": function(n, t, i, r, u) {
7306            var f = t && t.Thumbs;
7307            f && f.isActive && 71 === u && (r.preventDefault(), f.toggle())
7308        },
7309        "beforeClose.fb": function(n, t) {
7310            var i = t && t.Thumbs;
7311            i && i.isVisible && !1 !== i.opts.hideOnClose && i.$grid.hide()
7312        }
7313    })
7314}(document, jQuery),
7315function(n, t) {
7316    "use strict";
7317
7318    function i(n) {
7319        var t = {
7320            "&": "&amp;",
7321            "<": "&lt;",
7322            ">": "&gt;",
7323            '"': "&quot;",
7324            "'": "&#39;",
7325            "/": "&#x2F;",
7326            "`": "&#x60;",
7327            "=": "&#x3D;"
7328        };
7329        return String(n).replace(/[&<>"'`=\/]/g, function(n) {
7330            return t[n]
7331        })
7332    }
7333    t.extend(!0, t.fancybox.defaults, {
7334        btnTpl: {
7335            share: '<button data-fancybox-share class="fancybox-button fancybox-button--share" title="{{SHARE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2.55 19c1.4-8.4 9.1-9.8 11.9-9.8V5l7 7-7 6.3v-3.5c-2.8 0-10.5 2.1-11.9 4.2z"/><\/svg><\/button>'
7336        },
7337        share: {
7338            url: function(n, t) {
7339                return !n.currentHash && "inline" !== t.type && "html" !== t.type && (t.origSrc || t.src) || window.location
7340            },
7341            tpl: '<div class="fancybox-share"><h1>{{SHARE}}<\/h1><p><a class="fancybox-share__button fancybox-share__button--fb" href="https://www.facebook.com/sharer/sharer.php?u={{url}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196" /><\/svg><span>Facebook<\/span><\/a><a class="fancybox-share__button fancybox-share__button--tw" href="https://twitter.com/intent/tweet?url={{url}}&text={{descr}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z" /><\/svg><span>Twitter<\/span><\/a><a class="fancybox-share__button fancybox-share__button--pt" href="https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z" fill="#fff"/><\/svg><span>Pinterest<\/span><\/a><\/p><p><input class="fancybox-share__input" type="text" value="{{url_raw}}" onclick="select()" /><\/p><\/div>'
7342        }
7343    });
7344    t(n).on("click", "[data-fancybox-share]", function() {
7345        var u, f, r = t.fancybox.getInstance(),
7346            n = r.current || null;
7347        n && ("function" === t.type(n.opts.share.url) && (u = n.opts.share.url.apply(n, [r, n])), f = n.opts.share.tpl.replace(/\{\{media\}\}/g, "image" === n.type ? encodeURIComponent(n.src) : "").replace(/\{\{url\}\}/g, encodeURIComponent(u)).replace(/\{\{url_raw\}\}/g, i(u)).replace(/\{\{descr\}\}/g, r.$caption ? encodeURIComponent(r.$caption.text()) : ""), t.fancybox.open({
7348            src: r.translate(r, f),
7349            type: "html",
7350            opts: {
7351                touch: !1,
7352                animationEffect: !1,
7353                afterLoad: function(n, t) {
7354                    r.$refs.container.one("beforeClose.fb", function() {
7355                        n.close(null, 0)
7356                    });
7357                    t.$content.find(".fancybox-share__button").click(function() {
7358                        return window.open(this.href, "Share", "width=550, height=450"), !1
7359                    })
7360                },
7361                mobile: {
7362                    autoFocus: !1
7363                }
7364            }
7365        }))
7366    })
7367}(document, jQuery),
7368function(n, t, i) {
7369    "use strict";
7370
7371    function r() {
7372        var i = n.location.hash.substr(1),
7373            t = i.split("-"),
7374            r = t.length > 1 && /^\+?\d+$/.test(t[t.length - 1]) ? parseInt(t.pop(-1), 10) || 1 : 1,
7375            u = t.join("-");
7376        return {
7377            hash: i,
7378            index: r < 1 ? 1 : r,
7379            gallery: u
7380        }
7381    }
7382
7383    function u(n) {
7384        "" !== n.gallery && i("[data-fancybox='" + i.escapeSelector(n.gallery) + "']").eq(n.index - 1).focus().trigger("click.fb-start")
7385    }
7386
7387    function f(n) {
7388        var t, i;
7389        return !!n && (t = n.current ? n.current.opts : n.opts, "" !== (i = t.hash || (t.$orig ? t.$orig.data("fancybox") || t.$orig.data("fancybox-trigger") : "")) && i)
7390    }
7391    i.escapeSelector || (i.escapeSelector = function(n) {
7392        return (n + "").replace(/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, function(n, t) {
7393            return t ? "\0" === n ? "�" : n.slice(0, -1) + "\\" + n.charCo
7393deAt(n.length - 1).toString(16) + " " : "\\" + n
7394        })
7395    });
7396    i(function() {
7397        !1 !== i.fancybox.defaults.hash && (i(t).on({
7398            "onInit.fb": function(n, t) {
7399                var i, u;
7400                !1 !== t.group[t.currIndex].opts.hash && (i = r(), (u = f(t)) && i.gallery && u == i.gallery && (t.currIndex = i.index - 1))
7401            },
7402            "beforeShow.fb": function(i, r, u, e) {
7403                var o;
7404                u && !1 !== u.opts.hash && (o = f(r)) && (r.currentHash = o + (r.group.length > 1 ? "-" + (u.index + 1) : ""), n.location.hash !== "#" + r.currentHash && (e && !r.origHash && (r.origHash = n.location.hash), r.hashTimer && clearTimeout(r.hashTimer), r.hashTimer = setTimeout(function() {
7405                    "replaceState" in n.history ? (n.history[e ? "pushState" : "replaceState"]({}, t.title, n.location.pathname + n.location.search + "#" + r.currentHash), e && (r.hasCreatedHistory = !0)) : n.location.hash = r.currentHash;
7406                    r.hashTimer = null
7407                }, 300)))
7408            },
7409            "beforeClose.fb": function(i, r, u) {
7410                u && !1 !== u.opts.hash && (clearTimeout(r.hashTimer), r.currentHash && r.hasCreatedHistory ? n.history.back() : r.currentHash && ("replaceState" in n.history ? n.history.replaceState({}, t.title, n.location.pathname + n.location.search + (r.origHash || "")) : n.location.hash = r.origHash), r.currentHash = null)
7411            }
7412        }), i(n).on("hashchange.fb", function() {
7413            var n = r(),
7414                t = null;
7415            i.each(i(".fancybox-container").get().reverse(), function(n, r) {
7416                var u = i(r).data("FancyBox");
7417                if (u && u.currentHash) return t = u, !1
7418            });
7419            t ? t.currentHash === n.gallery + "-" + n.index || 1 === n.index && t.currentHash == n.gallery || (t.currentHash = null, t.close()) : "" !== n.gallery && u(n)
7420        }), setTimeout(function() {
7421            i.fancybox.getInstance() || u(r())
7422        }, 50))
7423    })
7424}(window, document, jQuery),
7425function(n, t) {
7426    "use strict";
7427    var i = (new Date).getTime();
7428    t(n).on({
7429        "onInit.fb": function(n, t) {
7430            t.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll", function(n) {
7431                var r = t.current,
7432                    u = (new Date).getTime();
7433                t.group.length < 2 || !1 === r.opts.wheel || "auto" === r.opts.wheel && "image" !== r.type || (n.preventDefault(), n.stopPropagation(), r.$slide.hasClass("fancybox-animated") || (n = n.originalEvent || n, u - i < 250 || (i = u, t[(-n.deltaY || -n.deltaX || n.wheelDelta || -n.detail) < 0 ? "next" : "previous"]())))
7434            })
7435        }
7436    })
7437}(document, jQuery),
7438function(n, t) {
7439    typeof define == "function" && define.amd ? define("sifter", t) : typeof exports == "object" ? module.exports = t() : n.Sifter = t()
7440}(this, function() {
7441    var n = function(n, t) {
7442        this.items = n;
7443        this.settings = t || {
7444            diacritics: !0
7445        }
7446    };
7447    n.prototype.tokenize = function(n) {
7448        if (n = o(String(n || "").toLowerCase()), n = n.replace("â", "a").replace("ă", "a").replace("ê", "e").replace("ô", "o").replace("ơ", "o").replace("ư", "u").replace("Â", "A").replace("Ă", "A").replace("Ê", "E").replace("Ô", "O").replace("Ơ", "O").replace("Ư", "U"), !n || !n.length) return [];
7449        for (var r, u, h = [], f = n.split(/ +/), i = 0, e = f.length; i < e; i++) {
7450            if (r = s(f[i]), this.settings.diacritics)
7451                for (u in t) t.hasOwnProperty(u) && (r = r.replace(new RegExp(u, "g"), t[u]));
7452            h.push({
7453                string: f[i],
7454                regex: new RegExp(r, "i")
7455            })
7456        }
7457        return h
7458    };
7459    n.prototype.iterator = function(n, t) {
7460        var r;
7461        r = i(n) ? Array.prototype.forEach || function(n) {
7462            for (var t = 0, i = this.length; t < i; t++) n(this[t], t, this)
7463        } : function(n) {
7464            for (var t in this) this.hasOwnProperty(t) && n(this[t], t, this)
7465        };
7466        r.apply(n, [t])
7467    };
7468    n.prototype.getScoreFunction = function(n, t) {
7469        var h, f, u, i, o, s, e;
7470        return (h = this, n = h.prepareSearch(n, t), u = n.tokens, f = n.options.fields, i = u.length, o = n.options.nesting, s = function(n, t) {
7471            var i, r;
7472            return n ? (n = String(n || ""), r = n.search(t.regex), r === -1) ? 0 : (i = t.string.length / n.length, r === 0 && (i += .5), i) : 0
7473        }, e = function() {
7474            var n = f.length;
7475            return n ? n === 1 ? function(n, t) {
7476                return s(r(t, f[0], o), n)
7477            } : function(t, i) {
7478                for (var u = 0, e = 0; u < n; u++) e += s(r(i, f[u], o), t);
7479                return e / n
7480            } : function() {
7481                return 0
7482            }
7483        }(), !i) ? function() {
7484            return 0
7485        } : i === 1 ? function(n) {
7486            return e(u[0], n)
7487        } : n.options.conjunction === "and" ? function(n) {
7488            for (var t, r = 0, f = 0; r < i; r++) {
7489                if (t = e(u[r], n), t <= 0) return 0;
7490                f += t
7491            }
7492            return f / i
7493        } : function(n) {
7494            for (var t = 0, r = 0; t < i; t++) r += e(u[t], n);
7495            return r / i
7496        }
7497    };
7498    n.prototype.getSortFunction = function(n, t) {
7499        var i, e, l, a, f, h, y, c, o, v, s;
7500        if (l = this, n = l.prepareSearch(n, t), s = !n.query && t.sort_empty || t.sort, o = function(n, i) {
7501                return n === "$score" ? i.score : r(l.items[i.id], n, t.nesting)
7502            }, f = [], s)
7503            for (i = 0, e = s.length; i < e; i++)(n.query || s[i].field !== "$score") && f.push(s[i]);
7504        if (n.query) {
7505            for (v = !0, i = 0, e = f.length; i < e; i++)
7506                if (f[i].field === "$score") {
7507                    v = !1;
7508                    break
7509                }
7510            v
7511        } else
7512            for (i = 0, e = f.length; i < e; i++)
7513                if (f[i].field === "$score") {
7514                    f.splice(i, 1);
7515                    break
7516                } for (c = [], i = 0, e = f.length; i < e; i++) c.push(f[i].direction === "desc" ? -1 : 1);
7517        return h = f.length, h ? h === 1 ? (a = f[0].field, y = c[0], function(n, t) {
7518            return y * u(o(a, n), o(a, t))
7519        }) : function(n, t) {
7520            for (var r, e, i = 0; i < h; i++)
7521                if (e = f[i].field, r = c[i] * u(o(e, n), o(e, t)), r) return r;
7522            return 0
7523        } : null
7524    };
7525    n.prototype.prepareSearch = function(n, t) {
7526        if (typeof n == "object") return n;
7527        t = e({}, t);
7528        var r = t.fields,
7529            u = t.sort,
7530            f = t.sort_empty;
7531        return r && !i(r) && (t.fields = [r]), u && !i(u) && (t.sort = [u]), f && !i(f) && (t.sort_empty = [f]), {
7532            options: t,
7533            query: String(n || "").toLowerCase(),
7534            tokens: this.tokenize(n),
7535            total: 0,
7536            items: []
7537        }
7538    };
7539    n.prototype.search = function(n, t) {
7540        var r = this,
7541            u, i, f, e;
7542        return i = this.prepareSearch(n, t), t = i.options, n = i.query, e = t.score || r.getScoreFunction(i), n.length ? r.iterator(r.items, function(n, r) {
7543            u = e(n);
7544            (t.filter === !1 || u > 0) && i.items.push({
7545                score: u,
7546                id: r
7547            })
7548        }) : r.iterator(r.items, function(n, t) {
7549            i.items.push({
7550                score: 1,
7551                id: t
7552            })
7553        }), f = r.getSortFunction(i, t), f && i.items.sort(f), i.total = i.items.length, typeof t.limit == "number" && (i.items = i.items.slice(0, t.limit)), i
7554    };
7555    var u = function(n, t) {
7556            return typeof n == "number" && typeof t == "number" ? n > t ? 1 : n < t ? -1 : 0 : (n = f(String(n || "")), t = f(String(t || "")), n > t) ? 1 : t > n ? -1 : 0
7557        },
7558        e = function(n) {
7559            for (var r, t, i = 1, u = arguments.length; i < u; i++)
7560                if (t = arguments[i], t)
7561                    for (r in t) t.hasOwnProperty(r) && (n[r] = t[r]);
7562            return n
7563        },
7564        r = function(n, t, i) {
7565            if (n && t) {
7566                if (!i) return n[t];
7567                for (var r = t.split("."); r.length && (n = n[r.shift()]););
7568                return n
7569            }
7570        },
7571        o = function(n) {
7572            return (n + "").replace(/^\s+|\s+$|/g, "")
7573        },
7574        s = function(n) {
7575            return (n + "").replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1")
7576        },
7577        i = Array.isArray || typeof $ != "undefined" && $.isArray || function(n) {
7578            return Object.prototype.toString.call(n) === "[object Array]"
7579        },
7580        t = {
7581            A: "[AⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ]",
7582            AA: "[Ꜳ]",
7583            AE: "[ÆǼǢ]",
7584            AO: "[Ꜵ]",
7585            AU: "[Ꜷ]",
7586            AV: "[ꜸꜺ]",
7587            AY: "[Ꜽ]",
7588            B: "[BⒷBḂḄḆɃƂƁ]",
7589            C: "[CⒸCĆĈĊČÇḈƇȻꜾ]",
7590            D: "[DⒹDḊĎḌḐḒḎĐƋƊƉꝹ]",
7591            DZ: "[DZDŽ]",
7592            Dz: "[DzDž]",
7593            E: "[EⒺEÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎ]",
7594            F: "[FⒻFḞƑꝻ]",
7595            G: "[GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ]",
7596            H: "[HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ]",
7597            I: "[IⒾIÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ]",
7598            J: "[JⒿJĴɈ]",
7599            K: "[KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ]",
7600            L: "[LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ]",
7601            LJ: "[LJ]",
7602            Lj: "[Lj]",
7603            M: "[MⓂMḾṀṂⱮƜ]",
7604            N: "[NⓃNǸŃÑṄŇṆŅṊṈȠƝꞐꞤ]",
7605            NJ: "[NJ]",
7606            Nj: "[Nj]",
7607            O: "[OⓄOÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ]",
7608            OI: "[Æ¢]",
7609            OO: "[Ꝏ]",
7610            OU: "[È¢]",
7611            P: "[PⓅPṔṖƤⱣꝐꝒꝔ]",
7612            Q: "[QⓆQꝖꝘɊ]",
7613            R: "[RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ]",
7614            S: "[SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ]",
7615            T: "[TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ]",
7616            TZ: "[Ꜩ]",
7617            U: "[UⓊUÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ]",
7618            V: "[VⓋVṼṾƲꝞɅ]",
7619            VY: "[Ꝡ]",
7620            W: "[WⓌWẀẂŴẆẄẈⱲ]",
7621            X: "[XⓍXẊẌ]",
7622            Y: "[YⓎYỲÝŶỸȲẎŸỶỴƳɎỾ]",
7623            Z: "[ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ]",
7624            a: "[aⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ]",
7625            aa: "[ꜳ]",
7626            ae: "[æǽǣ]",
7627            ao: "[ꜵ]",
7628            au: "[ꜷ]",
7629            av: "[ꜹꜻ]",
7630            ay: "[ꜽ]",
7631            b: "[bⓑbḃḅḇƀƃɓ]",
7632            c: "[cⓒcćĉċčçḉƈȼꜿↄ]",
7633            d: "[dⓓdḋďḍḑḓḏđƌɖɗꝺ]",
7634            dz: "[dzdž]",
7635            e: "[eⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ]",
7636            f: "[fⓕfḟƒꝼ]",
7637            g: "[gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ]",
7638            h: "[hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ]",
7639            hv: "[ƕ]",
7640            i: "[iⓘiìíîĩīĭïḯỉǐȉȋịįḭɨı]",
7641            j: "[jⓙjĵǰɉ]",
7642            k: "[kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ]",
7643            l: "[lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ]",
7644            lj: "[lj]",
7645            m: "[mⓜmḿṁṃɱɯ]",
7646            n: "[nⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ]",
7647            nj: "[nj]",
7648            o: "[oⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔꝋꝍɵ]",
7649            oi: "[Æ£]",
7650            ou: "[È£]",
7651            oo: "[ꝏ]",
7652            p: "[pⓟpṕṗƥᵽꝑꝓꝕ]",
7653            q: "[qⓠqɋꝗꝙ]",
7654            r: "[rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ]",
7655            s: "[sⓢsßśṥŝṡšṧṣṩșşȿꞩꞅẛ]",
7656            t: "[tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ]",
7657            tz: "[ꜩ]",
7658            u: "[uⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ]",
7659            v: "[vⓥvṽṿʋꝟʌ]",
7660            vy: "[ꝡ]",
7661            w: "[wⓦwẁẃŵẇẅẘẉⱳ]",
7662            x: "[xⓧxẋẍ]",
7663            y: "[yⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ]",
7664            z: "[zⓩzźẑżžẓẕƶȥɀⱬꝣ]"
7665        },
7666        f = function() {
7667            var i, u, n, r, f = "",
7668                e = {},
7669                o;
7670            for (n in t)
7671                if (t.hasOwnProperty(n))
7672                    for (r = t[n].substring(2, t[n].length - 1), f += r, i = 0, u = r.length; i < u; i++) e[r.charAt(i)] = n;
7673            return o = new RegExp("[" + f + "]", "g"),
7674                function(n) {
7675                    return n.replace(o, function(n) {
7676                        return e[n]
7677                    }).toLowerCase()
7678                }
7679        }();
7680    return n
7681}),
7682function(n, t) {
7683    typeof define == "function" && define.amd ? define("microplugin", t) : typeof exports == "object" ? module.exports = t() : n.MicroPlugin = t()
7684}(this, function() {
7685    var n = {},
7686        t;
7687    return n.mixin = function(n) {
7688        n.plugins = {};
7689        n.prototype.initializePlugins = function(n) {
7690            var i, e, r, f = this,
7691                u = [];
7692            if (f.plugins = {
7693                    names: [],
7694                    settings: {},
7695                    requested: {},
7696                    loaded: {}
7697                }, t.isArray(n))
7698                for (i = 0, e = n.length; i < e; i++) typeof n[i] == "string" ? u.push(n[i]) : (f.plugins.settings[n[i].name] = n[i].options, u.push(n[i].name));
7699            else if (n)
7700                for (r in n) n.hasOwnProperty(r) && (f.plugins.settings[r] = n[r], u.push(r));
7701            while (u.length) f.require(u.shift())
7702        };
7703        n.prototype.loadPlugin = function(t) {
7704            var i = this,
7705                r = i.plugins,
7706                u = n.plugins[t];
7707            if (!n.plugins.hasOwnProperty(t)) throw new Error('Unable to find "' + t + '" plugin');
7708            r.requested[t] = !0;
7709            r.loaded[t] = u.fn.apply(i, [i.plugins.settings[t] || {}]);
7710            r.names.push(t)
7711        };
7712        n.prototype.require = function(n) {
7713            var t = this,
7714                i = t.plugins;
7715            if (!t.plugins.loaded.hasOwnProperty(n)) {
7716                if (i.requested[n]) throw new Error('Plugin has circular dependency ("' + n + '")');
7717                t.loadPlugin(n)
7718            }
7719            return i.loaded[n]
7720        };
7721        n.define = function(t, i) {
7722            n.plugins[t] = {
7723                name: t,
7724                fn: i
7725            }
7726        }
7727    }, t = {
7728        isArray: Array.isArray || function(n) {
7729            return Object.prototype.toString.call(n) === "[object Array]"
7730        }
7731    }, n
7732}),
7733function(n, t) {
7734    typeof define == "function" && define.amd ? define("selectize", ["jquery", "sifter", "microplugin"], t) : typeof exports == "object" ? module.exports = t(require("jquery"), require("sifter"), require("microplugin")) : n.Selectize = t(n.jQuery, n.Sifter, n.MicroPlugin)
7735}(this, function(n, t, i) {
7736    "use strict";
7737    var d = function(n, t) {
7738            if (typeof t != "string" || t.length) {
7739                var i = typeof t == "string" ? new RegExp(t, "i") : t,
7740                    r = function(n) {
7741                        var o = 0,
7742                            e, s, u, t;
7743                        if (n.nodeType === 3) {
7744                            if (e = n.data.search(i), e >= 0 && n.data.length > 0) {
7745                                s = n.data.match(i);
7746                                u = document.createElement("span");
7747                                u.className = "highlight";
7748                                var f = n.splitText(e),
7749                                    c = f.splitText(s[0].length),
7750                                    h = f.cloneNode(!0);
7751                                u.appendChild(h);
7752                                f.parentNode.replaceChild(u, f);
7753                                o = 1
7754                            }
7755                        } else if (n.nodeType === 1 && n.childNodes && !/(script|style)/i.test(n.tagName) && (n.className !== "highlight" || n.tagName !== "SPAN"))
7756                            for (t = 0; t < n.childNodes.length; ++t) t += r(n.childNodes[t]);
7757                        return o
7758                    };
7759                return n.each(function() {
7760                    r(this)
7761                })
7762            }
7763        },
7764        f;
7765    n.fn.removeHighlight = function() {
7766        return this.find("span.highlight").each(function() {
7767            this.parentNode.firstChild.nodeName;
7768            var n = this.parentNode;
7769            n.replaceChild(this.firstChild, this);
7770            n.normalize()
7771        }).end()
7772    };
7773    f = function() {};
7774    f.prototype = {
7775        on: function(n, t) {
7776            this._events = this._events || {};
7777            this._events[n] = this._events[n] || [];
7778            this._events[n].push(t)
7779        },
7780        off: function(n, t) {
7781            var i = arguments.length;
7782            if (i === 0) return delete this._events;
7783            if (i === 1) return delete this._events[n];
7784            (this._events = this._events || {}, n in this._events != !1) && this._events[n].splice(this._events[n].indexOf(t), 1)
7785        },
7786        trigger: function(n) {
7787            if (this._events = this._events || {}, n in this._events != !1)
7788                for (var t = 0; t < this._events[n].length; t++) this._events[n][t].apply(this, Array.prototype.slice.call(arguments, 1))
7789        }
7790    };
7791    f.mixin = function(n) {
7792        for (var i = ["on", "off", "trigger"], t = 0; t < i.length; t++) n.prototype[i[t]] = f.prototype[i[t]]
7793    };
7794    var e = /Mac/.test(navigator.userAgent),
7795        g = 65,
7796        nt = 13,
7797        tt = 27,
7798        l = 37,
7799        it = 38,
7800        rt = 80,
7801        y = 39,
7802        ut = 40,
7803        ft = 78,
7804        o = 8,
7805        a = 46,
7806        et = 16,
7807        ot = e ? 91 : 17,
7808        st = e ? 18 : 17,
7809        p = 9,
7810        h = 1,
7811        ht = 2,
7812        w = !/android/i.test(window.navigator.userAgent) && !!document.createElement("input").validity,
7813        b = function(n) {
7814            return typeof n != "undefined"
7815        },
7816        u = function(n) {
7817            return typeof n == "undefined" || n === null ? null : typeof n == "boolean" ? n ? "1" : "0" : n + ""
7818        },
7819        s = function(n) {
7820            return (n + "").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;")
7821        },
7822        kt = function(n) {
7823            return (n + "").replace(/\$/g, "$$$$")
7824        },
7825        c = {};
7826    c.before = function(n, t, i) {
7827        var r = n[t];
7828        n[t] = function() {
7829            return i.apply(n, arguments), r.apply(n, arguments)
7830        }
7831    };
7832    c.after = function(n, t, i) {
7833        var r = n[t];
7834        n[t] = function() {
7835            var t = r.apply(n, arguments);
7836            return i.apply(n, arguments), t
7837        }
7838    };
7839    var ct = function(n) {
7840            var t = !1;
7841            return function() {
7842                t || (t = !0, n.apply(this, arguments))
7843            }
7844        },
7845        lt = function(n, t) {
7846            var i;
7847            return function() {
7848                var r = this,
7849                    u = arguments;
7850                window.clearTimeout(i);
7851                i = window.setTimeout(function() {
7852                    n.apply(r, u)
7853                }, t)
7854            }
7855        },
7856        k = function(n, t, i) {
7857            var u, f = n.trigger,
7858                r = {};
7859            n.trigger = function() {
7860                var i = arguments[0];
7861                if (t.indexOf(i) !== -1) r[i] = arguments;
7862                else return f.apply(n, arguments)
7863            };
7864            i.apply(n, []);
7865            n.trigger = f;
7866            for (u in r) r.hasOwnProperty(u) && f.apply(n, r[u])
7867        },
7868        at = function(n, t, i, r) {
7869            n.on(t, i, function(t) {
7870                for (var i = t.target; i && i.parentNode !== n[0];) i = i.parentNode;
7871                return t.currentTarget = i, r.apply(this, [t])
7872            })
7873        },
7874        v = function(n) {
7875            var t = {},
7876                i, r;
7877            return "selectionStart" in n ? (t.start = n.selectionStart, t.length = n.selectionEnd - t.start) : document.selection && (n.focus(), i = document.selection.createRange(), r = document.selection.createRange().text.length, i.moveStart("character", -n.value.length), t.start = i.text.length - r, t.length = r), t
7878        },
7879        vt = function(n, t, i) {
7880            var r, f, u = {};
7881            if (i)
7882                for (r = 0, f = i.length; r < f; r++) u[i[r]] = n.css(i[r]);
7883            else u = n.css();
7884            t.css(u)
7885        },
7886        yt = function(t, i) {
7887            return t ? (r.$testInput || (r.$testInput = n("<span />").css({
7888                position: "absolute",
7889                top: -99999,
7890                left: -99999,
7891                width: "auto",
7892                padding: 0,
7893                whiteSpace: "pre"
7894            }).appendTo("body")), r.$testInput.text(t), vt(i, r.$testInput, ["letterSpacing", "fontSize", "fontFamily", "fontWeight", "textTransform"]), r.$testInput.width()) : 0
7895        },
7896        pt = function(n) {
7897            var t = null,
7898                i = function(i, r) {
7899                    var u, f, l, c, h, y, s, e;
7900                    (i = i || window.event || {}, r = r || {}, i.metaKey || i.altKey) || (r.force || n.data("grow") !== !1) && (u = n.val(), i.type && i.type.toLowerCase() === "keydown" && (f = i.keyCode, l = f >= 48 && f <= 57 || f >= 65 && f <= 90 || f >= 96 && f <= 111 || f >= 186 && f <= 222 || f === 32, f === a || f === o ? (e = v(n[0]), e.length ? u = u.substring(0, e.start) + u.substring(e.start + e.length) : f === o && e.start ? u = u.substring(0, e.start - 1) + u.substring(e.start + 1) : f === a && typeof e.start != "undefined" && (u = u.substring(0, e.start) + u.substring(e.start + 1))) : l && (y = i.shiftKey, s = String.fromCharCode(i.keyCode), s = y ? s.toUpperCase() : s.toLowerCase(), u += s)), c = n.attr("placeholder"), !u && c && (u = c), h = yt(u, n) + 4, h !== t && (t = h, n.width(h), n.triggerHandler("resize")))
7901                };
7902            n.on("keydown keyup update blur", i);
7903            i()
7904        },
7905        wt = function(n) {
7906            var t = document.createElement("div");
7907            return t.appendChild(n.cloneNode(!0)), t.innerHTML
7908        },
7909        bt = function(n, t) {
7910            t || (t = {});
7911            console.error("Selectize: " + n);
7912            t.explanation && (console.group && console.group(), console.error(t.explanation), console.group && console.groupEnd())
7913        },
7914        r = function(i, u) {
7915            var e, s, c, o, f = this,
7916                l;
7917            if (o = i[0], o.selectize = f, l = window.getComputedStyle && window.getComputedStyle(o, null), c = l ? l.getPropertyValue("direction") : o.currentStyle && o.currentStyle.direction, c = c || i.parents("[dir]:first").attr("dir") || "", n.extend(f, {
7918                    order: 0,
7919                    settings: u,
7920                    $input: i,
7921                    tabIndex: i.attr("tabindex") || "",
7922                    tagType: o.tagName.toLowerCase() === "select" ? h : ht,
7923                    rtl: /rtl/i.test(c),
7924                    eventNS: ".selectize" + ++r.count,
7925                    highlightedValue: null,
7926                    isBlurring: !1,
7927                    isOpen: !1,
7928                    isDisabled: !1,
7929                    isRequired: i.is("[required]"),
7930                    isInvalid: !1,
7931                    isLocked: !1,
7932                    isFocused: !1,
7933                    isInputHidden: !1,
7934                    isSetup: !1,
7935                    isShiftDown: !1,
7936                    isCmdDown: !1,
7937                    isCtrlDown: !1,
7938                    ignoreFocus: !1,
7939                    ignoreBlur: !1,
7940                    ignoreHover: !1,
7941                    hasOptions: !1,
7942                    currentResults: null,
7943                    lastValue: "",
7944                    caretPos: 0,
7945                    loading: 0,
7946                    loadedSearches: {},
7947                    $activeOption: null,
7948                    $activeItems: [],
7949                    optgroups: {},
7950                    options: {},
7951                    userOptions: {},
7952                    items: [],
7953                    renderCache: {},
7954                    onSearchChange: u.loadThrottle === null ? f.onSearchChange : lt(f.onSearchChange, u.loadThrottle)
7955                }), f.sifter = new t(this.options, {
7956                    diacritics: u.diacritics
7957                }), f.settings.options) {
7958                for (e = 0, s = f.settings.options.length; e < s; e++) f.registerOption(f.settings.options[e]);
7959                delete f.settings.options
7960            }
7961            if (f.settings.optgroups) {
7962                for (e = 0, s = f.settings.optgroups.length; e < s; e++) f.registerOptionGroup(f.settings.optgroups[e]);
7963                delete f.settings.optgroups
7964            }
7965            f.settings.mode = f.settings.mode || (f.settings.maxItems === 1 ? "single" : "multi");
7966            f.settings.dropdownDirection = f.settings.dropdownDirection || "auto";
7967            typeof f.settings.hideSelected != "boolean" && (f.settings.hideSelected = f.settings.mode === "multi");
7968            f.initializePlugins(f.settings.plugins);
7969            f.setupCallbacks();
7970            f.setupTemplates();
7971            f.setup()
7972        };
7973    return f.mixin(r), typeof i != "undefined" ? i.mixin(r) : bt("Dependency MicroPlugin is missing", {
7974        explanation: 'Make sure you either: (1) are using the "standalone" version of Selectize, or (2) require MicroPlugin before you load Selectize.'
7975    }), n.extend(r.prototype, {
7976        setup: function() {
7977            var t = this,
7978                r = t.settings,
7979                o = t.eventNS,
7980                b = n(window),
7981                a = n(document),
7982                i = t.$input,
7983                s, c, u, f, k, d, v, y, p, l, g;
7984            v = t.settings.mode;
7985            y = i.attr("class") || "";
7986            s = n("<div>").addClass(r.wrapperClass).addClass(y).addClass(v);
7987            c = n("<div>").addClass(r.inputClass).addClass("items").appendTo(s);
7988            u = n('<input type="text" autocomplete="off" />').appendTo(c).attr("tabindex", i.is(":disabled") ? "-1" : t.tabIndex);
7989            d = n(r.dropdownParent || s);
7990            f = n("<div>").addClass(r.dropdownClass).addClass(v).hide().appendTo(d);
7991            k = n("<div>").addClass(r.dropdownContentClass).appendTo(f);
7992            (l = i.attr("id")) && (u.attr("id", l + "-selectized"), n("label[for='" + l + "']").attr("for", l + "-selectized"));
7993            t.settings.copyClassesToDropdown && f.addClass(y);
7994            s.css({
7995                width: i[0].style.width
7996            });
7997            t.plugins.names.length && (p = "plugin-" + t.plugins.names.join(" plugin-"), s.addClass(p), f.addClass(p));
7998            (r.maxItems === null || r.maxItems > 1) && t.tagType === h && i.attr("multiple", "multiple");
7999            t.settings.placeholder && u.attr("placeholder", r.placeholder);
8000            !t.settings.splitOn && t.settings.delimiter && (g = t.settings.delimiter.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"), t.settings.splitOn = new RegExp("\\s*" + g + "+\\s*"));
8001            i.attr("autocorrect") && u.attr("autocorrect", i.attr("autocorrect"));
8002            i.attr("autocapitalize") && u.attr("autocapitalize", i.attr("autocapitalize"));
8003            u[0].type = i[0].type;
8004            t.$wrapper = s;
8005            t.$control = c;
8006            t.$control_input = u;
8007            t.$dropdown = f;
8008            t.$dropdown_content = k;
8009            f.on("mouseenter mousedown click", "[data-disabled]>[data-selectable]", function(n) {
8010                n.stopImmediatePropagation()
8011            });
8012            f.on("mouseenter", "[data-selectable]", function() {
8013                return t.onOptionHover.apply(t, arguments)
8014            });
8015            f.on("mousedown click", "[data-selectable]", function() {
8016                return t.onOptionSelect.apply(t, arguments)
8017            });
8018            at(c, "mousedown", "*:not(input)", function() {
8019                return t.onItemSelect.apply(t, arguments)
8020            });
8021            pt(u);
8022            c.on({
8023                mousedown: function() {
8024                    return t.onMouseDown.apply(t, arguments)
8025                },
8026                click: function() {
8027                    return t.onClick.apply(t, arguments)
8028                }
8029            });
8030            u.on({
8031                mousedown: function(n) {
8032                    n.stopPropagation()
8033                },
8034                keydown: function() {
8035                    return t.onKeyDown.apply(t, arguments)
8036                },
8037                keyup: function() {
8038                    return t.onKeyUp.apply(t, arguments)
8039                },
8040                keypress: function() {
8041                    return t.onKeyPress.apply(t, arguments)
8042                },
8043                resize: function() {
8044                    t.positionDropdown.apply(t, [])
8045                },
8046                blur: function() {
8047                    return t.onBlur.apply(t, arguments)
8048                },
8049                focus: function() {
8050                    return t.ignoreBlur = !1, t.onFocus.apply(t, arguments)
8051                },
8052                paste: function() {
8053                    return t.onPaste.apply(t, arguments)
8054                }
8055            });
8056            a.on("keydown" + o, function(n) {
8057                t.isCmdDown = n[e ? "metaKey" : "ctrlKey"];
8058                t.isCtrlDown = n[e ? "altKey" : "ctrlKey"];
8059                t.isShiftDown = n.shiftKey
8060            });
8061            a.on("keyup" + o, function(n) {
8062                n.keyCode === st && (t.isCtrlDown = !1);
8063                n.keyCode === et && (t.isShiftDown = !1);
8064                n.keyCode === ot && (t.isCmdDown = !1)
8065            });
8066            a.on("mousedown" + o, function(n) {
8067                if (t.isFocused) {
8068                    if (n.target === t.$dropdown[0] || n.target.parentNode === t.$dropdown[0]) return !1;
8069                    t.$control.has(n.target).length || n.target === t.$control[0] || t.blur(n.target)
8070                }
8071            });
8072            b.on(["scroll" + o, "resize" + o].join(" "), function() {
8073                t.isOpen && t.positionDropdown.apply(t, arguments)
8074            });
8075            b.on("mousemove" + o, function() {
8076                t.ignoreHover = !1
8077            });
8078            if (this.revertSettings = {
8079                    $children: i.children().detach(),
8080                    tabindex: i.attr("tabindex")
8081                }, i.attr("tabindex", -1).hide().after(t.$wrapper), n.isArray(r.items) && (t.setValue(r.items), delete r.items), w) i.on("invalid" + o, function(n) {
8082                n.preventDefault();
8083                t.isInvalid = !0;
8084                t.refreshState()
8085            });
8086            t.updateOriginalInput();
8087            t.refreshItems();
8088            t.refreshState();
8089            t.updatePlaceholder();
8090            t.isSetup = !0;
8091            i.is(":disabled") && t.disable();
8092            t.on("change", this.onChange);
8093            if (i.data("selectize", t), i.addClass("selectized"), t.trigger("initialize"), r.preload === !0) t.onSearchChange("")
8094        },
8095        setupTemplates: function() {
8096            var t = this,
8097                i = t.settings.labelField,
8098                r = t.settings.optgroupLabelField,
8099                u = {
8100                    optgroup: function(n) {
8101                        return '<div class="optgroup">' + n.html + "<\/div>"
8102                    },
8103                    optgroup_header: function(n, t) {
8104                        return '<div class="optgroup-header">' + t(n[r]) + "<\/div>"
8105                    },
8106                    option: function(n, t) {
8107                        return '<div class="option">' + t(n[i]) + "<\/div>"
8108                    },
8109                    item: function(n, t) {
8110                        return '<div class="item">' + t(n[i]) + "<\/div>"
8111                    },
8112                    option_create: function(n, t) {
8113                        return '<div class="create">Add <strong>' + t(n.input) + "<\/strong>&hellip;<\/div>"
8114                    }
8115                };
8116            t.settings.render = n.extend({}, u, t.settings.render)
8117        },
8118        setupCallbacks: function() {
8119            var n, t, i = {
8120                initialize: "onInitialize",
8121                change: "onChange",
8122                item_add: "onItemAdd",
8123                item_remove: "onItemRemove",
8124                clear: "onClear",
8125                option_add: "onOptionAdd",
8126                option_remove: "onOptionRemove",
8127                option_clear: "onOptionClear",
8128                optgroup_add: "onOptionGroupAdd",
8129                optgroup_remove: "onOptionGroupRemove",
8130                optgroup_clear: "onOptionGroupClear",
8131                dropdown_open: "onDropdownOpen",
8132                dropdown_close: "onDropdownClose",
8133                type: "onType",
8134                load: "onLoad",
8135                focus: "onFocus",
8136                blur: "onBlur"
8137            };
8138            for (n in i)
8139                if (i.hasOwnProperty(n) && (t = this.settings[i[n]], t)) this.on(n, t)
8140        },
8141        onClick: function(n) {
8142            var t = this;
8143            t.isFocused && t.isOpen || (t.focus(), n.preventDefault())
8144        },
8145        onMouseDown: function(t) {
8146            var i = this,
8147                r = t.isDefaultPrevented(),
8148                u = n(t.target);
8149            if (i.isFocused) {
8150                if (t.target !== i.$control_input[0]) return i.settings.mode === "single" ? i.isOpen ? i.close() : i.open() : r || i.setActiveItem(null), !1
8151            } else r || window.setTimeout(function() {
8152                i.focus()
8153            }, 0)
8154        },
8155        onChange: function() {
8156            this.$input.trigger("change")
8157        },
8158        onPaste: function(t) {
8159            var i = this;
8160            if (i.isFull() || i.isInputHidden || i.isLocked) {
8161                t.preventDefault();
8162                return
8163            }
8164            i.settings.splitOn && setTimeout(function() {
8165                var u = i.$control_input.val(),
8166                    r, t, f;
8167                if (u.match(i.settings.splitOn))
8168                    for (r = n.trim(u).split(i.settings.splitOn), t = 0, f = r.length; t < f; t++) i.createItem(r[t])
8169            }, 0)
8170        },
8171        onKeyPress: function(n) {
8172            if (this.isLocked) return n && n.preventDefault();
8173            var t = String.fromCharCode(n.keyCode || n.which);
8174            if (this.settings.create && this.settings.mode === "multi" && t === this.settings.delimiter) return this.createItem(), n.preventDefault(), !1
8175        },
8176        onKeyDown: function(n) {
8177            var u = n.target === this.$control_input[0],
8178                t = this,
8179                i, r;
8180            if (t.isLocked) {
8181                n.keyCode !== p && n.preventDefault();
8182                return
8183            }
8184            switch (n.keyCode) {
8185                case g:
8186                    if (t.isCmdDown) {
8187                        t.selectAll();
8188                        return
8189                    }
8190                    break;
8191                case tt:
8192                    t.isOpen && (n.preventDefault(), n.stopPropagation(), t.close());
8193                    return;
8194                case ft:
8195                    if (!n.ctrlKey || n.altKey) break;
8196                case ut:
8197                    !t.isOpen && t.hasOptions ? t.open() : t.$activeOption && (t.ignoreHover = !0, i = t.getAdjacentOption(t.$activeOption, 1), i.length && t.setActiveOption(i, !0, !0));
8198                    n.preventDefault();
8199                    return;
8200                case rt:
8201                    if (!n.ctrlKey || n.altKey) break;
8202                case it:
8203                    t.$activeOption && (t.ignoreHover = !0, r = t.getAdjacentOption(t.$activeOption, -1), r.length && t.setActiveOption(r, !0, !0));
8204                    n.preventDefault();
8205                    return;
8206                case nt:
8207                    if (t.isOpen && t.$activeOption) {
8208                        t.onOptionSelect({
8209                            currentTarget: t.$activeOption
8210                        });
8211                        n.preventDefault()
8212                    }
8213                    return;
8214                case l:
8215                    t.advanceSelection(-1, n);
8216                    return;
8217                case y:
8218                    t.advanceSelection(1, n);
8219                    return;
8220                case p:
8221                    if (t.settings.selectOnTab && t.isOpen && t.$activeOption) {
8222                        t.onOptionSelect({
8223                            currentTarget: t.$activeOption
8224                        });
8225                        t.isFull() || n.preventDefault()
8226                    }
8227                    t.settings.create && t.createItem() && n.preventDefault();
8228                    return;
8229                case o:
8230                case a:
8231                    t.deleteSelection(n);
8232                    return
8233            }
8234            if ((t.isFull() || t.isInputHidden) && !(e ? n.metaKey : n.ctrlKey)) {
8235                n.preventDefault();
8236                return
8237            }
8238        },
8239        onKeyUp: function(n) {
8240            var t = this,
8241                i;
8242            if (t.isLocked) return n && n.preventDefault();
8243            if (i = t.$control_input.val() || "", t.lastValue !== i) {
8244                t.lastValue = i;
8245                t.onSearchChange(i);
8246                t.refreshOptions();
8247                t.trigger("type", i)
8248            }
8249        },
8250        onSearchChange: function(n) {
8251            var t = this,
8252                i = t.settings.load;
8253            i && (t.loadedSearches.hasOwnProperty(n) || (t.loadedSearches[n] = !0, t.load(function(r) {
8254                i.apply(t, [n, r])
8255            })))
8256        },
8257        onFocus: function(n) {
8258            var t = this,
8259                i = t.isFocused;
8260            if (t.isDisabled) return t.blur(), n && n.preventDefault(), !1;
8261            if (!t.ignoreFocus) {
8262                if (t.isFocused = !0, t.settings.preload === "focus") t.onSearchChange("");
8263                i || t.trigger("focus");
8264                t.$activeItems.length || (t.showInput(), t.setActiveItem(null), t.refreshOptions(!!t.settings.openOnFocus));
8265                t.refreshState()
8266            }
8267        },
8268        onBlur: function(n, t) {
8269            var i = this,
8270                r;
8271            if (i.isFocused && (i.isFocused = !1, !i.ignoreFocus)) {
8272                if (!i.ignoreBlur && document.activeElement === i.$dropdown_content[0]) {
8273                    i.ignoreBlur = !0;
8274                    i.onFocus(n);
8275                    return
8276                }
8277                r = function() {
8278                    i.close();
8279                    i.setTextboxValue("");
8280                    i.setActiveItem(null);
8281                    i.setActiveOption(null);
8282                    i.setCaret(i.items.length);
8283                    i.refreshState();
8284                    t && t.focus && t.focus();
8285                    i.isBlurring = !1;
8286                    i.ignoreFocus = !1;
8287                    i.trigger("blur")
8288                };
8289                i.isBlurring = !0;
8290                i.ignoreFocus = !0;
8291                i.settings.create && i.settings.createOnBlur ? i.createItem(null, !1, r) : r()
8292            }
8293        },
8294        onOptionHover: function(n) {
8295            this.ignoreHover || this.setActiveOption(n.currentTarget, !1)
8296        },
8297        onOptionSelect: function(t) {
8298            var r, u, i = this;
8299            t.preventDefault && (t.preventDefault(), t.stopPropagation());
8300            u = n(t.currentTarget);
8301            u.hasClass("create") ? i.createItem(null, function() {
8302                i.settings.closeAfterSelect && i.close()
8303            }) : (r = u.attr("data-value"), typeof r != "undefined" && (i.lastQuery = null, i.setTextboxValue(""), i.addItem(r), i.settings.closeAfterSelect ? i.close() : !i.settings.hideSelected && t.type && /mouse/.test(t.type) && i.setActiveOption(i.getOption(r))))
8304        },
8305        onItemSelect: function(n) {
8306            var t = this;
8307            t.isLocked || t.settings.mode === "multi" && (n.preventDefault(), t.setActiveItem(n.currentTarget, n))
8308        },
8309        load: function(n) {
8310            var t = this,
8311                i = t.$wrapper.addClass(t.settings.loadingClass);
8312            t.loading++;
8313            n.apply(t, [function(n) {
8314                t.loading = Math.max(t.loading - 1, 0);
8315                n && n.length && (t.addOption(n), t.refreshOptions(t.isFocused && !t.isInputHidden));
8316                t.loading || i.removeClass(t.settings.loadingClass);
8317                t.trigger("load", n)
8318            }])
8319        },
8320        setTextboxValue: function(n) {
8321            var t = this.$control_input,
8322                i = t.val() !== n;
8323            i && (t.val(n).triggerHandler("update"), this.lastValue = n)
8324        },
8325        getValue: function() {
8326            return this.tagType === h && this.$input.attr("multiple") ? this.items : this.items.join(this.settings.delimiter)
8327        },
8328        setValue: function(n, t) {
8329            var i = t ? [] : ["change"];
8330            k(this, i, function() {
8331                this.clear(t);
8332                this.addItems(n, t)
8333            })
8334        },
8335        setActiveItem: function(t, i) {
8336            var r = this,
8337                e, o, h, u, f, s, c, l;
8338            if (r.settings.mode !== "single") {
8339                if (t = n(t), !t.length) {
8340                    n(r.$activeItems).removeClass("active");
8341                    r.$activeItems = [];
8342                    r.isFocused && r.showInput();
8343                    return
8344                }
8345                if (e = i && i.type.toLowerCase(), e === "mousedown" && r.isShiftDown && r.$activeItems.length) {
8346                    for (l = r.$control.children(".active:last"), u = Array.prototype.indexOf.apply(r.$control[0].childNodes, [l[0]]), f = Array.prototype.indexOf.apply(r.$control[0].childNodes, [t[0]]), u > f && (c = u, u = f, f = c), o = u; o <= f; o++) s = r.$control[0].childNodes[o], r.$activeItems.indexOf(s) === -1 && (n(s).addClass("active"), r.$activeItems.push(s));
8347                    i.preventDefault()
8348                } else e === "mousedown" && r.isCtrlDown || e === "keydown" && this.isShiftDown ? t.hasClass("active") ? (h = r.$activeItems.indexOf(t[0]), r.$activeItems.splice(h, 1), t.removeClass("active")) : r.$activeItems.push(t.addClass("active")[0]) : (n(r.$activeItems).removeClass("active"), r.$activeItems = [t.addClass("active")[0]]);
8349                r.hideInput();
8350                this.isFocused || r.focus()
8351            }
8352        },
8353        setActiveOption: function(t, i, r) {
8354            var e, o, f, s, h, u = this;
8355            (u.$activeOption && u.$activeOption.removeClass("active"), u.$activeOption = null, t = n(t), t.length) && (u.$activeOption = t.addClass("active"), (i || !b(i)) && (e = u.$dropdown_content.height(), o = u.$activeOption.outerHeight(!0), i = u.$dropdown_content.scrollTop() || 0, f = u.$activeOption.offset().top - u.$dropdown_content.offset().top + i, s = f, h = f - e + o, f + o > e + i ? u.$dropdown_content.stop().animate({
8356                scrollTop: h
8357            }, r ? u.settings.scrollDuration : 0) : f < i && u.$dropdown_content.stop().animate({
8358                scrollTop: s
8359            }, r ? u.settings.scrollDuration : 0)))
8360        },
8361        selectAll: function() {
8362            var n = this;
8363            n.settings.mode !== "single" && (n.$activeItems = Array.prototype.slice.apply(n.$control.children(":not(input)").addClass("active")), n.$activeItems.length && (n.hideInput(), n.close()), n.focus())
8364        },
8365        hideInput: function() {
8366            var n = this;
8367            n.setTextboxValue("");
8368            n.$control_input.css({
8369                opacity: 0,
8370                position: "absolute",
8371                left: n.rtl ? 1e4 : -1e4
8372            });
8373            n.isInputHidden = !0
8374        },
8375        showInput: function() {
8376            this.$control_input.css({
8377                opacity: 1,
8378                position: "relative",
8379                left: 0
8380            });
8381            this.isInputHidden = !1
8382        },
8383        focus: function() {
8384            var n = this;
8385            n.isDisabled || (n.ignoreFocus = !0, n.$control_input[0].focus(), window.setTimeout(function() {
8386                n.ignoreFocus = !1;
8387                n.onFocus()
8388            }, 0))
8389        },
8390        blur: function(n) {
8391            if (this.settings.chooseItemOnBlur) this.onOptionSelect({
8392                currentTarget: this.$activeOption
8393            });
8394            this.$control_input[0].blur();
8395            this.onBlur(null, n)
8396        },
8397        getScoreFunction: function(n) {
8398            return this.sifter.getScoreFunction(n, this.getSearchOptions())
8399        },
8400        getSearchOptions: function() {
8401            var n = this.settings,
8402                t = n.sortField;
8403            return typeof t == "string" && (t = [{
8404                field: t
8405            }]), {
8406                fields: n.searchField,
8407                conjunction: n.searchConjunction,
8408                sort: t,
8409                nesting: n.nesting
8410            }
8411        },
8412        search: function(t) {
8413            var f, r, e, i = this,
8414                o = i.settings,
8415                s = this.getSearchOptions();
8416            if (o.score && (e = i.settings.score.apply(this, [t]), typeof e != "function")) throw new Error('Selectize "score" setting must be a function that returns a function');
8417            if (t !== i.lastQuery ? (i.lastQuery = t, r = i.sifter.search(t, n.extend(s, {
8418                    score: e
8419                })), i.currentResults = r) : r = n.extend(!0, {}, i.currentResults), o.hideSelected)
8420                for (f = r.items.length - 1; f >= 0;
8420 f--) i.items.indexOf(u(r.items[f].id)) !== -1 && r.items.splice(f, 1);
8421            return r
8422        },
8423        refreshOptions: function(t) {
8424            var f, v, tt, e, s, l, k, it, r, y, p, a, g, h, w, b;
8425            typeof t == "undefined" && (t = !0);
8426            var i = this,
8427                nt = n.trim(i.$control_input.val()),
8428                o = i.search(nt),
8429                c = i.$dropdown_content,
8430                rt = i.$activeOption && u(i.$activeOption.attr("data-value"));
8431            for (e = o.items.length, typeof i.settings.maxOptions == "number" && (e = Math.min(e, i.settings.maxOptions)), s = {}, l = [], f = 0; f < e; f++)
8432                for (k = i.options[o.items[f].id], it = i.render("option", k), r = k[i.settings.optgroupField] || "", y = n.isArray(r) ? r : [r], v = 0, tt = y && y.length; v < tt; v++) r = y[v], i.optgroups.hasOwnProperty(r) || (r = ""), s.hasOwnProperty(r) || (s[r] = document.createDocumentFragment(), l.push(r)), s[r].appendChild(it);
8433            for (this.settings.lockOptgroupOrder && l.sort(function(n, t) {
8434                    var r = i.optgroups[n].$order || 0,
8435                        u = i.optgroups[t].$order || 0;
8436                    return r - u
8437                }), p = document.createDocumentFragment(), f = 0, e = l.length; f < e; f++) r = l[f], i.optgroups.hasOwnProperty(r) && s[r].childNodes.length ? (a = document.createDocumentFragment(), a.appendChild(i.render("optgroup_header", i.optgroups[r])), a.appendChild(s[r]), p.appendChild(i.render("optgroup", n.extend({}, i.optgroups[r], {
8438                html: wt(a),
8439                dom: a
8440            })))) : p.appendChild(s[r]);
8441            if (c.html(p), i.settings.highlight && (c.removeHighlight(), o.query.length && o.tokens.length))
8442                for (f = 0, e = o.tokens.length; f < e; f++) d(c, o.tokens[f].regex);
8443            if (!i.settings.hideSelected)
8444                for (f = 0, e = i.items.length; f < e; f++) i.getOption(i.items[f]).addClass("selected");
8445            g = i.canCreate(nt);
8446            g && (c.prepend(i.render("option_create", {
8447                input: nt
8448            })), b = n(c[0].childNodes[0]));
8449            i.hasOptions = o.items.length > 0 || g;
8450            i.hasOptions ? (o.items.length > 0 ? (w = rt && i.getOption(rt), w && w.length ? h = w : i.settings.mode === "single" && i.items.length && (h = i.getOption(i.items[0])), h && h.length || (h = b && !i.settings.addPrecedence ? i.getAdjacentOption(b, 1) : c.find("[data-selectable]:first"))) : h = b, i.setActiveOption(h), t && !i.isOpen && i.open()) : (i.setActiveOption(null), t && i.isOpen && i.close());
8451            i.positionDropdown()
8452        },
8453        addOption: function(t) {
8454            var r, f, u, i = this;
8455            if (n.isArray(t)) {
8456                for (r = 0, f = t.length; r < f; r++) i.addOption(t[r]);
8457                return
8458            }(u = i.registerOption(t)) && (i.userOptions[u] = !0, i.lastQuery = null, i.trigger("option_add", u, t))
8459        },
8460        registerOption: function(n) {
8461            var t = u(n[this.settings.valueField]);
8462            return typeof t == "undefined" || t === null || this.options.hasOwnProperty(t) ? !1 : (n.$order = n.$order || ++this.order, this.options[t] = n, t)
8463        },
8464        registerOptionGroup: function(n) {
8465            var t = u(n[this.settings.optgroupValueField]);
8466            return t ? (n.$order = n.$order || ++this.order, this.optgroups[t] = n, t) : !1
8467        },
8468        addOptionGroup: function(n, t) {
8469            t[this.settings.optgroupValueField] = n;
8470            (n = this.registerOptionGroup(t)) && this.trigger("optgroup_add", n, t)
8471        },
8472        removeOptionGroup: function(n) {
8473            this.optgroups.hasOwnProperty(n) && (delete this.optgroups[n], this.renderCache = {}, this.trigger("optgroup_remove", n))
8474        },
8475        clearOptionGroups: function() {
8476            this.optgroups = {};
8477            this.renderCache = {};
8478            this.trigger("optgroup_clear")
8479        },
8480        updateOption: function(t, i) {
8481            var r = this,
8482                s, h, f, c, e, o, l;
8483            if ((t = u(t), f = u(i[r.settings.valueField]), t !== null) && r.options.hasOwnProperty(t)) {
8484                if (typeof f != "string") throw new Error("Value must be set in option data");
8485                l = r.options[t].$order;
8486                f !== t && (delete r.options[t], c = r.items.indexOf(t), c !== -1 && r.items.splice(c, 1, f));
8487                i.$order = i.$order || l;
8488                r.options[f] = i;
8489                e = r.renderCache.item;
8490                o = r.renderCache.option;
8491                e && (delete e[t], delete e[f]);
8492                o && (delete o[t], delete o[f]);
8493                r.items.indexOf(f) !== -1 && (s = r.getItem(t), h = n(r.render("item", i)), s.hasClass("active") && h.addClass("active"), s.replaceWith(h));
8494                r.lastQuery = null;
8495                r.isOpen && r.refreshOptions(!1)
8496            }
8497        },
8498        removeOption: function(n, t) {
8499            var i = this,
8500                r, f;
8501            n = u(n);
8502            r = i.renderCache.item;
8503            f = i.renderCache.option;
8504            r && delete r[n];
8505            f && delete f[n];
8506            delete i.userOptions[n];
8507            delete i.options[n];
8508            i.lastQuery = null;
8509            i.trigger("option_remove", n);
8510            i.removeItem(n, t)
8511        },
8512        clearOptions: function() {
8513            var t = this,
8514                i;
8515            t.loadedSearches = {};
8516            t.userOptions = {};
8517            t.renderCache = {};
8518            i = t.options;
8519            n.each(t.options, function(n) {
8520                t.items.indexOf(n) == -1 && delete i[n]
8521            });
8522            t.options = t.sifter.items = i;
8523            t.lastQuery = null;
8524            t.trigger("option_clear")
8525        },
8526        getOption: function(n) {
8527            return this.getElementWithValue(n, this.$dropdown_content.find("[data-selectable]"))
8528        },
8529        getAdjacentOption: function(t, i) {
8530            var r = this.$dropdown.find("[data-selectable]"),
8531                u = r.index(t) + i;
8532            return u >= 0 && u < r.length ? r.eq(u) : n()
8533        },
8534        getElementWithValue: function(t, i) {
8535            if (t = u(t), typeof t != "undefined" && t !== null)
8536                for (var r = 0, f = i.length; r < f; r++)
8537                    if (i[r].getAttribute("data-value") === t) return n(i[r]);
8538            return n()
8539        },
8540        getItem: function(n) {
8541            return this.getElementWithValue(n, this.$control.children())
8542        },
8543        addItems: function(t, i) {
8544            var u, f, r, e, o;
8545            for (this.buffer = document.createDocumentFragment(), u = this.$control[0].childNodes, r = 0; r < u.length; r++) this.buffer.appendChild(u[r]);
8546            for (f = n.isArray(t) ? t : [t], r = 0, e = f.length; r < e; r++) this.isPending = r < e - 1, this.addItem(f[r], i);
8547            o = this.$control[0];
8548            o.insertBefore(this.buffer, o.firstChild);
8549            this.buffer = null
8550        },
8551        addItem: function(t, i) {
8552            var r = i ? [] : ["change"];
8553            k(this, r, function() {
8554                var e, s, h, r = this,
8555                    f = r.settings.mode,
8556                    o, c;
8557                if (t = u(t), r.items.indexOf(t) !== -1) {
8558                    f === "single" && r.close();
8559                    return
8560                }
8561                r.options.hasOwnProperty(t) && ((f === "single" && r.clear(i), f === "multi" && r.isFull()) || (e = n(r.render("item", r.options[t])), c = r.isFull(), r.items.splice(r.caretPos, 0, t), r.insertAtCaret(e), r.isPending && (c || !r.isFull()) || r.refreshState(), r.isSetup && (h = r.$dropdown_content.find("[data-selectable]"), r.isPending || (s = r.getOption(t), o = r.getAdjacentOption(s, 1).attr("data-value"), r.refreshOptions(r.isFocused && f !== "single"), o && r.setActiveOption(r.getOption(o))), !h.length || r.isFull() ? r.close() : r.isPending || r.positionDropdown(), r.updatePlaceholder(), r.trigger("item_add", t, e), r.isPending || r.updateOriginalInput({
8562                    silent: i
8563                }))))
8564            })
8565        },
8566        removeItem: function(t, i) {
8567            var r = this,
8568                f, e, o;
8569            f = t instanceof n ? t : r.getItem(t);
8570            t = u(f.attr("data-value"));
8571            e = r.items.indexOf(t);
8572            e !== -1 && (f.remove(), f.hasClass("active") && (o = r.$activeItems.indexOf(f[0]), r.$activeItems.splice(o, 1)), r.items.splice(e, 1), r.lastQuery = null, !r.settings.persist && r.userOptions.hasOwnProperty(t) && r.removeOption(t, i), e < r.caretPos && r.setCaret(r.caretPos - 1), r.refreshState(), r.updatePlaceholder(), r.updateOriginalInput({
8573                silent: i
8574            }), r.positionDropdown(), r.trigger("item_remove", t, f))
8575        },
8576        createItem: function(t, i) {
8577            var r = this,
8578                s = r.caretPos,
8579                f;
8580            if (t = t || n.trim(r.$control_input.val() || ""), f = arguments[arguments.length - 1], typeof f != "function" && (f = function() {}), typeof i != "boolean" && (i = !0), !r.canCreate(t)) return f(), !1;
8581            r.lock();
8582            var h = typeof r.settings.create == "function" ? this.settings.create : function(n) {
8583                    var t = {};
8584                    return t[r.settings.labelField] = n, t[r.settings.valueField] = n, t
8585                },
8586                e = ct(function(n) {
8587                    if (r.unlock(), !n || typeof n != "object") return f();
8588                    var t = u(n[r.settings.valueField]);
8589                    if (typeof t != "string") return f();
8590                    r.setTextboxValue("");
8591                    r.addOption(n);
8592                    r.setCaret(s);
8593                    r.addItem(t);
8594                    r.refreshOptions(i && r.settings.mode !== "single");
8595                    f(n)
8596                }),
8597                o = h.apply(this, [t, e]);
8598            return typeof o != "undefined" && e(o), !0
8599        },
8600        refreshItems: function() {
8601            this.lastQuery = null;
8602            this.isSetup && this.addItem(this.items);
8603            this.refreshState();
8604            this.updateOriginalInput()
8605        },
8606        refreshState: function() {
8607            this.refreshValidityState();
8608            this.refreshClasses()
8609        },
8610        refreshValidityState: function() {
8611            if (!this.isRequired) return !1;
8612            var n = !this.items.length;
8613            this.isInvalid = n;
8614            this.$control_input.prop("required", n);
8615            this.$input.prop("required", !n)
8616        },
8617        refreshClasses: function() {
8618            var t = this,
8619                i = t.isFull(),
8620                r = t.isLocked;
8621            t.$wrapper.toggleClass("rtl", t.rtl);
8622            t.$control.toggleClass("focus", t.isFocused).toggleClass("disabled", t.isDisabled).toggleClass("required", t.isRequired).toggleClass("invalid", t.isInvalid).toggleClass("locked", r).toggleClass("full", i).toggleClass("not-full", !i).toggleClass("input-active", t.isFocused && !t.isInputHidden).toggleClass("dropdown-active", t.isOpen).toggleClass("has-options", !n.isEmptyObject(t.options)).toggleClass("has-items", t.items.length > 0);
8623            t.$control_input.data("grow", !i && !r)
8624        },
8625        isFull: function() {
8626            return this.settings.maxItems !== null && this.items.length >= this.settings.maxItems
8627        },
8628        updateOriginalInput: function(n) {
8629            var i, u, r, f, t = this;
8630            if (n = n || {}, t.tagType === h) {
8631                for (r = [], i = 0, u = t.items.length; i < u; i++) f = t.options[t.items[i]][t.settings.labelField] || "", r.push('<option value="' + s(t.items[i]) + '" selected="selected">' + s(f) + "<\/option>");
8632                r.length || this.$input.attr("multiple") || r.push('<option value="" selected="selected"><\/option>');
8633                t.$input.html(r.join(""))
8634            } else t.$input.val(t.getValue()), t.$input.attr("value", t.$input.val());
8635            t.isSetup && (n.silent || t.trigger("change", t.$input.val()))
8636        },
8637        updatePlaceholder: function() {
8638            if (this.settings.placeholder) {
8639                var n = this.$control_input;
8640                this.items.length ? n.removeAttr("placeholder") : n.attr("placeholder", this.settings.placeholder);
8641                n.triggerHandler("update", {
8642                    force: !0
8643                })
8644            }
8645        },
8646        open: function() {
8647            var n = this;
8648            n.isLocked || n.isOpen || n.settings.mode === "multi" && n.isFull() || (n.focus(), n.isOpen = !0, n.refreshState(), n.$dropdown.css({
8649                visibility: "hidden",
8650                display: "block"
8651            }), n.positionDropdown(), n.$dropdown.css({
8652                visibility: "visible"
8653            }), n.trigger("dropdown_open", n.$dropdown))
8654        },
8655        close: function() {
8656            var n = this,
8657                t = n.isOpen;
8658            n.settings.mode === "single" && n.items.length && (n.hideInput(), n.isBlurring || n.$control_input.blur());
8659            n.isOpen = !1;
8660            n.$dropdown.hide();
8661            n.setActiveOption(null);
8662            n.refreshState();
8663            t && n.trigger("dropdown_close", n.$dropdown)
8664        },
8665        positionDropdown: function() {
8666            var t = this,
8667                i = t.settings.dropdownDirection,
8668                r, u;
8669            return i !== "auto" ? t.setDropdownDirection(i) : (t.setDropdownDirection("down"), r = t.$dropdown[0].getBoundingClientRect(), u = r.bottom <= (window.innerHeight || n(window).height()), u ? void 0 : t.setDropdownDirection("up"))
8670        },
8671        setDropdownDirection: function(n) {
8672            var t = this.$control,
8673                i = this.settings.dropdownParent === "body" ? t.offset() : t.position();
8674            i.top += t.outerHeight(!0);
8675            this.$dropdown.css({
8676                width: t[0].getBoundingClientRect().width,
8677                left: i.left,
8678                top: n === "down" ? i.top : "auto",
8679                bottom: n === "down" ? "auto" : i.top
8680            }).toggleClass("dropdown-up", n === "down" ? !1 : !0)
8681        },
8682        clear: function(n) {
8683            var t = this;
8684            t.items.length && (t.$control.children(":not(input)").remove(), t.items = [], t.lastQuery = null, t.setCaret(0), t.setActiveItem(null), t.updatePlaceholder(), t.updateOriginalInput({
8685                silent: n
8686            }), t.refreshState(), t.showInput(), t.trigger("clear"))
8687        },
8688        insertAtCaret: function(n) {
8689            var i = Math.min(this.caretPos, this.items.length),
8690                r = n[0],
8691                t = this.buffer || this.$control[0];
8692            i === 0 ? t.insertBefore(r, t.firstChild) : t.insertBefore(r, t.childNodes[i]);
8693            this.setCaret(i + 1)
8694        },
8695        deleteSelection: function(t) {
8696            var f, l, u, e, r, s, h, c, a, i = this;
8697            if (u = t && t.keyCode === o ? -1 : 1, e = v(i.$control_input[0]), i.$activeOption && !i.settings.hideSelected && (h = i.getAdjacentOption(i.$activeOption, -1).attr("data-value")), r = [], i.$activeItems.length) {
8698                for (a = i.$control.children(".active:" + (u > 0 ? "last" : "first")), s = i.$control.children(":not(input)").index(a), u > 0 && s++, f = 0, l = i.$activeItems.length; f < l; f++) r.push(n(i.$activeItems[f]).attr("data-value"));
8699                t && (t.preventDefault(), t.stopPropagation())
8700            } else(i.isFocused || i.settings.mode === "single") && i.items.length && (u < 0 && e.start === 0 && e.length === 0 ? r.push(i.items[i.caretPos - 1]) : u > 0 && e.start === i.$control_input.val().length && r.push(i.items[i.caretPos]));
8701            if (!r.length || typeof i.settings.onDelete == "function" && i.settings.onDelete.apply(i, [r]) === !1) return !1;
8702            for (typeof s != "undefined" && i.setCaret(s); r.length;) i.removeItem(r.pop());
8703            return i.showInput(), i.positionDropdown(), i.refreshOptions(!0), h && (c = i.getOption(h), c.length && i.setActiveOption(c)), !0
8704        },
8705        advanceSelection: function(n, t) {
8706            var o, r, u, f, s, e, i = this;
8707            n !== 0 && (i.rtl && (n *= -1), o = n > 0 ? "last" : "first", r = v(i.$control_input[0]), i.isFocused && !i.isInputHidden ? (f = i.$control_input.val().length, s = n < 0 ? r.start === 0 && r.length === 0 : r.start === f, s && !f && i.advanceCaret(n, t)) : (e = i.$control.children(".active:" + o), e.length && (u = i.$control.children(":not(input)").index(e), i.setActiveItem(null), i.setCaret(n > 0 ? u + 1 : u))))
8708        },
8709        advanceCaret: function(n, t) {
8710            var i = this,
8711                u, r;
8712            n !== 0 && (u = n > 0 ? "next" : "prev", i.isShiftDown ? (r = i.$control_input[u](), r.length && (i.hideInput(), i.setActiveItem(r), t && t.preventDefault())) : i.setCaret(i.caretPos + n))
8713        },
8714        setCaret: function(t) {
8715            var i = this,
8716                r, e, u, f;
8717            if (t = i.settings.mode === "single" ? i.items.length : Math.max(0, Math.min(i.items.length, t)), !i.isPending)
8718                for (u = i.$control.children(":not(input)"), r = 0, e = u.length; r < e; r++) f = n(u[r]).detach(), r < t ? i.$control_input.before(f) : i.$control.append(f);
8719            i.caretPos = t
8720        },
8721        lock: function() {
8722            this.close();
8723            this.isLocked = !0;
8724            this.refreshState()
8725        },
8726        unlock: function() {
8727            this.isLocked = !1;
8728            this.refreshState()
8729        },
8730        disable: function() {
8731            var n = this;
8732            n.$input.prop("disabled", !0);
8733            n.$control_input.prop("disabled", !0).prop("tabindex", -1);
8734            n.isDisabled = !0;
8735            n.lock()
8736        },
8737        enable: function() {
8738            var n = this;
8739            n.$input.prop("disabled", !1);
8740            n.$control_input.prop("disabled", !1).prop("tabindex", n.tabIndex);
8741            n.isDisabled = !1;
8742            n.unlock()
8743        },
8744        destroy: function() {
8745            var t = this,
8746                i = t.eventNS,
8747                u = t.revertSettings;
8748            t.trigger("destroy");
8749            t.off();
8750            t.$wrapper.remove();
8751            t.$dropdown.remove();
8752            t.$input.html("").append(u.$children).removeAttr("tabindex").removeClass("selectized").attr({
8753                tabindex: u.tabindex
8754            }).show();
8755            t.$control_input.removeData("grow");
8756            t.$input.removeData("selectize");
8757            --r.count == 0 && r.$testInput && (r.$testInput.remove(), r.$testInput = undefined);
8758            n(window).off(i);
8759            n(document).off(i);
8760            n(document.body).off(i);
8761            delete t.$input[0].selectize
8762        },
8763        render: function(t, i) {
8764            var e, h, f = "",
8765                o = !1,
8766                r = this;
8767            return ((t === "option" || t === "item") && (e = u(i[r.settings.valueField]), o = !!e), o && (b(r.renderCache[t]) || (r.renderCache[t] = {}), r.renderCache[t].hasOwnProperty(e))) ? r.renderCache[t][e] : (f = n(r.settings.render[t].apply(this, [i, s])), t === "option" || t === "option_create" ? i[r.settings.disabledField] || f.attr("data-selectable", "") : t === "optgroup" && (h = i[r.settings.optgroupValueField] || "", f.attr("data-group", h), i[r.settings.disabledField] && f.attr("data-disabled", "")), (t === "option" || t === "item") && f.attr("data-value", e || ""), o && (r.renderCache[t][e] = f[0]), f[0])
8768        },
8769        clearCache: function(n) {
8770            var t = this;
8771            typeof n == "undefined" ? t.renderCache = {} : delete t.renderCache[n]
8772        },
8773        canCreate: function(n) {
8774            var i = this,
8775                t;
8776            return i.settings.create ? (t = i.settings.createFilter, n.length && (typeof t != "function" || t.apply(i, [n])) && (typeof t != "string" || new RegExp(t).test(n)) && (!(t instanceof RegExp) || t.test(n))) : !1
8777        }
8778    }), r.count = 0, r.defaults = {
8779        options: [],
8780        optgroups: [],
8781        plugins: [],
8782        delimiter: ",",
8783        splitOn: null,
8784        persist: !0,
8785        diacritics: !0,
8786        create: !1,
8787        createOnBlur: !1,
8788        chooseItemOnBlur: !1,
8789        createFilter: null,
8790        highlight: !0,
8791        openOnFocus: !0,
8792        maxOptions: 1e3,
8793        maxItems: null,
8794        hideSelected: null,
8795        addPrecedence: !1,
8796        selectOnTab: !0,
8797        preload: !1,
8798        allowEmptyOption: !1,
8799        closeAfterSelect: !1,
8800        scrollDuration: 60,
8801        loadThrottle: 300,
8802        loadingClass: "loading",
8803        dataAttr: "data-data",
8804        optgroupField: "optgroup",
8805        valueField: "value",
8806        labelField: "text",
8807        disabledField: "disabled",
8808        optgroupLabelField: "label",
8809        optgroupValueField: "value",
8810        lockOptgroupOrder: !1,
8811        sortField: "$order",
8812        searchField: ["text"],
8813        searchConjunction: "and",
8814        mode: null,
8815        wrapperClass: "selectize-control",
8816        inputClass: "selectize-input",
8817        dropdownClass: "selectize-dropdown",
8818        dropdownContentClass: "selectize-dropdown-content",
8819        dropdownParent: null,
8820        copyClassesToDropdown: !0,
8821        render: {}
8822    }, n.fn.selectize = function(t) {
8823        var c = n.fn.selectize.defaults,
8824            i = n.extend({}, c, t),
8825            o = i.dataAttr,
8826            s = i.labelField,
8827            e = i.valueField,
8828            h = i.disabledField,
8829            f = i.optgroupField,
8830            l = i.optgroupLabelField,
8831            a = i.optgroupValueField,
8832            v = function(t, r) {
8833                var u, h, f, c, a = t.attr(o),
8834                    l;
8835                if (a)
8836                    for (r.options = JSON.parse(a), u = 0, h = r.options.length; u < h; u++) r.items.push(r.options[u][e]);
8837                else {
8838                    if (l = n.trim(t.val() || ""), !i.allowEmptyOption && !l.length) return;
8839                    for (f = l.split(i.delimiter), u = 0, h = f.length; u < h; u++) c = {}, c[s] = f[u], c[e] = f[u], r.options.push(c);
8840                    r.items = f
8841                }
8842            },
8843            y = function(t, r) {
8844                var c, w, p, v, d = r.options,
8845                    y = {},
8846                    b = function(n) {
8847                        var t = o && n.attr(o);
8848                        return typeof t == "string" && t.length ? JSON.parse(t) : null
8849                    },
8850                    k = function(t, o) {
8851                        var l, a, c;
8852                        if (t = n(t), l = u(t.val()), l || i.allowEmptyOption) {
8853                            if (y.hasOwnProperty(l)) {
8854                                o && (a = y[l][f], a ? n.isArray(a) ? a.push(o) : y[l][f] = [a, o] : y[l][f] = o);
8855                                return
8856                            }
8857                            c = b(t) || {};
8858                            c[s] = c[s] || t.text();
8859                            c[e] = c[e] || l;
8860                            c[h] = c[h] || t.prop("disabled");
8861                            c[f] = c[f] || o;
8862                            y[l] = c;
8863                            d.push(c);
8864                            t.is(":selected") && r.items.push(l)
8865                        }
8866                    },
8867                    g = function(t) {
8868                        var f, o, i, u, e;
8869                        for (t = n(t), i = t.attr("label"), i && (u = b(t) || {}, u[l] = i, u[a] = i, u[h] = t.prop("disabled"), r.optgroups.push(u)), e = n("option", t), f = 0, o = e.length; f < o; f++) k(e[f], i)
8870                    };
8871                for (r.maxItems = t.attr("multiple") ? null : 1, v = t.children(), c = 0, w = v.length; c < w; c++) p = v[c].tagName.toLowerCase(), p === "optgroup" ? g(v[c]) : p === "option" && k(v[c])
8872            };
8873        return this.each(function() {
8874            var f;
8875            if (!this.selectize) {
8876                var o, u = n(this),
8877                    s = this.tagName.toLowerCase(),
8878                    e = u.attr("placeholder") || u.attr("data-placeholder");
8879                e || i.allowEmptyOption || (e = u.children('option[value=""]').text());
8880                f = {
8881                    placeholder: e,
8882                    options: [],
8883                    optgroups: [],
8884                    items: []
8885                };
8886                s === "select" ? y(u, f) : v(u, f);
8887                o = new r(u, n.extend(!0, {}, c, f, t))
8888            }
8889        })
8890    }, n.fn.selectize.defaults = r.defaults, n.fn.selectize.support = {
8891        validity: w
8892    }, r.define("drag_drop", function() {
8893        if (!n.fn.sortable) throw new Error('The "drag_drop" plugin requires jQuery UI "sortable".');
8894        if (this.settings.mode === "multi") {
8895            var t = this;
8896            t.lock = function() {
8897                var n = t.lock;
8898                return function() {
8899                    var i = t.$control.data("sortable");
8900                    return i && i.disable(), n.apply(t, arguments)
8901                }
8902            }();
8903            t.unlock = function() {
8904                var n = t.unlock;
8905                return function() {
8906                    var i = t.$control.data("sortable");
8907                    return i && i.enable(), n.apply(t, arguments)
8908                }
8909            }();
8910            t.setup = function() {
8911                var i = t.setup;
8912                return function() {
8913                    i.apply(this, arguments);
8914                    var r = t.$control.sortable({
8915                        items: "[data-value]",
8916                        forcePlaceholderSize: !0,
8917                        disabled: t.isLocked,
8918                        start: function(n, t) {
8919                            t.placeholder.css("width", t.helper.css("width"));
8920                            r.css({
8921                                overflow: "visible"
8922                            })
8923                        },
8924                        stop: function() {
8925                            r.css({
8926                                overflow: "hidden"
8927                            });
8928                            var u = t.$activeItems ? t.$activeItems.slice() : null,
8929                                i = [];
8930                            r.children("[data-value]").each(function() {
8931                                i.push(n(this).attr("data-value"))
8932                            });
8933                            t.setValue(i);
8934                            t.setActiveItem(u)
8935                        }
8936                    })
8937                }
8938            }()
8939        }
8940    }), r.define("dropdown_header", function(t) {
8941        var i = this;
8942        t = n.extend({
8943            title: "Untitled",
8944            headerClass: "selectize-dropdown-header",
8945            titleRowClass: "selectize-dropdown-header-title",
8946            labelClass: "selectize-dropdown-header-label",
8947            closeClass: "selectize-dropdown-header-close",
8948            html: function(n) {
8949                return '<div class="' + n.headerClass + '"><div class="' + n.titleRowClass + '"><span class="' + n.labelClass + '">' + n.title + '<\/span><a href="javascript:void(0)" class="' + n.closeClass + '">&times;<\/a><\/div><\/div>'
8950            }
8951        }, t);
8952        i.setup = function() {
8953            var r = i.setup;
8954            return function() {
8955                r.apply(i, arguments);
8956                i.$dropdown_header = n(t.html(t));
8957                i.$dropdown.prepend(i.$dropdown_header)
8958            }
8959        }()
8960    }), r.define("optgroup_columns", function(t) {
8961        var i = this,
8962            r, u;
8963        t = n.extend({
8964            equalizeWidth: !0,
8965            equalizeHeight: !0
8966        }, t);
8967        this.getAdjacentOption = function(t, i) {
8968            var r = t.closest("[data-group]").find("[data-selectable]"),
8969                u = r.index(t) + i;
8970            return u >= 0 && u < r.length ? r.eq(u) : n()
8971        };
8972        this.onKeyDown = function() {
8973            var n = i.onKeyDown;
8974            return function(t) {
8975                var e, u, f, r;
8976                if (this.isOpen && (t.keyCode === l || t.keyCode === y)) {
8977                    i.ignoreHover = !0;
8978                    r = this.$activeOption.closest("[data-group]");
8979                    e = r.find("[data-selectable]").index(this.$activeOption);
8980                    r = t.keyCode === l ? r.prev("[data-group]") : r.next("[data-group]");
8981                    f = r.find("[data-selectable]");
8982                    u = f.eq(Math.min(f.length - 1, e));
8983                    u.length && this.setActiveOption(u);
8984                    return
8985                }
8986                return n.apply(this, arguments)
8987            }
8988        }();
8989        r = function() {
8990            var n, t = r.width,
8991                i = document;
8992            return typeof t == "undefined" && (n = i.createElement("div"), n.innerHTML = '<div style="width:50px;height:50px;position:absolute;left:-50px;top:-50px;overflow:auto;"><div style="width:1px;height:100px;"><\/div><\/div>', n = n.firstChild, i.body.appendChild(n), t = r.width = n.offsetWidth - n.clientWidth, i.body.removeChild(n)), t
8993        };
8994        u = function() {
8995            var e, u, o, s, c, h, f;
8996            if (f = n("[data-group]", i.$dropdown_content), u = f.length, u && i.$dropdown_content.width()) {
8997                if (t.equalizeHeight) {
8998                    for (o = 0, e = 0; e < u; e++) o = Math.max(o, f.eq(e).height());
8999                    f.css({
9000                        height: o
9001                    })
9002                }
9003                t.equalizeWidth && (h = i.$dropdown_content.innerWidth() - r(), s = Math.round(h / u), f.css({
9004                    width: s
9005                }), u > 1 && (c = h - s * (u - 1), f.eq(u - 1).css({
9006                    width: c
9007                })))
9008            }
9009        };
9010        (t.equalizeHeight || t.equalizeWidth) && (c.after(this, "positionDropdown", u), c.after(this, "refreshOptions", u))
9011    }), r.define("remove_button", function(t) {
9012        t = n.extend({
9013            label: "&times;",
9014            title: "Remove",
9015            className: "remove",
9016            append: !0
9017        }, t);
9018        var i = function(t, i) {
9019                i.className = "remove-single";
9020                var r = t,
9021                    u = '<a href="javascript:void(0)" class="' + i.className + '" tabindex="-1" title="' + s(i.title) + '">' + i.label + "<\/a>",
9022                    f = function(t, i) {
9023                        return n("<span>").append(t).append(i)
9024                    };
9025                t.setup = function() {
9026                    var e = r.setup;
9027                    return function() {
9028                        if (i.append) {
9029                            var o = n(r.$input.context).attr("id"),
9030                                h = n("#" + o),
9031                                s = r.settings.render.item;
9032                            r.settings.render.item = function() {
9033                                return f(s.apply(t, arguments), u)
9034                            }
9035                        }
9036                        e.apply(t, arguments);
9037                        t.$control.on("click", "." + i.className, function(n) {
9038                            (n.preventDefault(), r.isLocked) || r.clear()
9039                        })
9040                    }
9041                }()
9042            },
9043            r = function(t, i) {
9044                var r = t,
9045                    u = '<a href="javascript:void(0)" class="' + i.className + '" tabindex="-1" title="' + s(i.title) + '">' + i.label + "<\/a>",
9046                    f = function(n, t) {
9047                        var i = n.search(/(<\/[^>]+>\s*)$/);
9048                        return n.substring(0, i) + t + n.substring(i)
9049                    };
9050                t.setup = function() {
9051                    var e = r.setup;
9052                    return function() {
9053                        if (i.append) {
9054                            var o = r.settings.render.item;
9055                            r.settings.render.item = function() {
9056                                return f(o.apply(t, arguments), u)
9057                            }
9058                        }
9059                        e.apply(t, arguments);
9060                        t.$control.on("click", "." + i.className, function(t) {
9061                            if (t.preventDefault(), !r.isLocked) {
9062                                var i = n(t.currentTarget).parent();
9063                                r.setActiveItem(i);
9064                                r.deleteSelection() && r.setCaret(r.items.length)
9065                            }
9066                        })
9067                    }
9068                }()
9069            };
9070        if (this.settings.mode === "single") {
9071            i(this, t);
9072            return
9073        }
9074        r(this, t)
9075    }), r.define("restore_on_backspace", function(n) {
9076        var t = this;
9077        n.text = n.text || function(n) {
9078            return n[this.settings.labelField]
9079        };
9080        this.onKeyDown = function() {
9081            var i = t.onKeyDown;
9082            return function(t) {
9083                var r, u;
9084                if (t.keyCode === o && this.$control_input.val() === "" && !this.$activeItems.length && (r = this.caretPos - 1, r >= 0 && r < this.items.length)) {
9085                    u = this.options[this.items[r]];
9086                    this.deleteSelection(t) && (this.setTextboxValue(n.text.apply(this, [u])), this.refreshOptions(!0));
9087                    t.preventDefault();
9088                    return
9089                }
9090                return i.apply(this, arguments)
9091            }
9092        }()
9093    }), r
9094});
9095;

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.