PageSourceSearch

https://danishsshaikh.github.io/DLOT/assets-site/js/vendor.min.js

js danishsshaikh.github.io collected 2026-10-03 08:53:58 UTC 287,280 bytes, 5,606 lines download raw bytes

1! function(t, e) {
2    "object" == typeof exports && "undefined" != typeof module ? e(exports, require("jquery"), require("popper.js")) : "function" == typeof define && define.amd ? define(["exports", "jquery", "popper.js"], e) : e((t = t || self).bootstrap = {}, t.jQuery, t.Popper)
3}(this, function(t, p, u) {
4    "use strict";
5
6    function n(t, e) {
7        for (var i = 0; i < e.length; i++) {
8            var n = e[i];
9            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n)
10        }
11    }
12
13    function o(t, e, i) {
14        return e && n(t.prototype, e), i && n(t, i), t
15    }
16
17    function e(e, t) {
18        var i = Object.keys(e);
19        if (Object.getOwnPropertySymbols) {
20            var n = Object.getOwnPropertySymbols(e);
21            t && (n = n.filter(function(t) {
22                return Object.getOwnPropertyDescriptor(e, t).enumerable
23            })), i.push.apply(i, n)
24        }
25        return i
26    }
27
28    function r(s) {
29        for (var t = 1; t < arguments.length; t++) {
30            var o = null != arguments[t] ? arguments[t] : {};
31            t % 2 ? e(Object(o), !0).forEach(function(t) {
32                var e, i, n;
33                e = s, n = o[i = t], i in e ? Object.defineProperty(e, i, {
34                    value: n,
35                    enumerable: !0,
36                    configurable: !0,
37                    writable: !0
38                }) : e[i] = n
39            }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(s, Object.getOwnPropertyDescriptors(o)) : e(Object(o)).forEach(function(t) {
40                Object.defineProperty(s, t, Object.getOwnPropertyDescriptor(o, t))
41            })
42        }
43        return s
44    }
45    p = p && p.hasOwnProperty("default") ? p.default : p, u = u && u.hasOwnProperty("default") ? u.default : u;
46    var i = "transitionend";
47    var m = {
48        TRANSITION_END: "bsTransitionEnd",
49        getUID: function(t) {
50            for (; t += ~~(1e6 * Math.random()), document.getElementById(t););
51            return t
52        },
53        getSelectorFromElement: function(t) {
54            var e = t.getAttribute("data-target");
55            if (!e || "#" === e) {
56                var i = t.getAttribute("href");
57                e = i && "#" !== i ? i.trim() : ""
58            }
59            try {
60                return document.querySelector(e) ? e : null
61            } catch (t) {
62                return null
63            }
64        },
65        getTransitionDurationFromElement: function(t) {
66            if (!t) return 0;
67            var e = p(t).css("transition-duration"),
68                i = p(t).css("transition-delay"),
69                n = parseFloat(e),
70                s = parseFloat(i);
71            return n || s ? (e = e.split(",")[0], i = i.split(",")[0], 1e3 * (parseFloat(e) + parseFloat(i))) : 0
72        },
73        reflow: function(t) {
74            return t.offsetHeight
75        },
76        triggerTransitionEnd: function(t) {
77            p(t).trigger(i)
78        },
79        supportsTransitionEnd: function() {
80            return Boolean(i)
81        },
82        isElement: function(t) {
83            return (t[0] || t).nodeType
84        },
85        typeCheckConfig: function(t, e, i) {
86            for (var n in i)
87                if (Object.prototype.hasOwnProperty.call(i, n)) {
88                    var s = i[n],
89                        o = e[n],
90                        r = o && m.isElement(o) ? "element" : {}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase();
91                    if (!new RegExp(s).test(r)) throw new Error(t.toUpperCase() + ': Option "' + n + '" provided type "' + r + '" but expected type "' + s + '".')
92                }
93        },
94        findShadowRoot: function(t) {
95            if (!document.documentElement.attachShadow) return null;
96            if ("function" != typeof t.getRootNode) return t instanceof ShadowRoot ? t : t.parentNode ? m.findShadowRoot(t.parentNode) : null;
97            var e = t.getRootNode();
98            return e instanceof ShadowRoot ? e : null
99        },
100        jQueryDetection: function() {
101            if (void 0 === p) throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");
102            var t = p.fn.jquery.split(" ")[0].split(".");
103            if (t[0] < 2 && t[1] < 9 || 1 === t[0] && 9 === t[1] && t[2] < 1 || 4 <= t[0]) throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")
104        }
105    };
106    m.jQueryDetection(), p.fn.emulateTransitionEnd = function(t) {
107        var e = this,
108            i = !1;
109        return p(this).one(m.TRANSITION_END, function() {
110            i = !0
111        }), setTimeout(function() {
112            i || m.triggerTransitionEnd(e)
113        }, t), this
114    }, p.event.special[m.TRANSITION_END] = {
115        bindType: i,
116        delegateType: i,
117        handle: function(t) {
118            if (p(t.target).is(this)) return t.handleObj.handler.apply(this, arguments)
119        }
120    };
121    var s, a = "alert",
122        l = "bs.alert",
123        h = "." + l,
124        c = p.fn[a],
125        d = {
126            CLOSE: "close" + h,
127            CLOSED: "closed" + h,
128            CLICK_DATA_API: "click" + h + ".data-api"
129        },
130        f = ((s = g.prototype).close = function(t) {
131            var e = this._element;
132            t && (e = this._getRootElement(t)), this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e)
133        }, s.dispose = function() {
134            p.removeData(this._element, l), this._element = null
135        }, s._getRootElement = function(t) {
136            var e = m.getSelectorFromElement(t),
137                i = !1;
138            return e && (i = document.querySelector(e)), i || p(t).closest(".alert")[0]
139        }, s._triggerCloseEvent = function(t) {
140            var e = p.Event(d.CLOSE);
141            return p(t).trigger(e), e
142        }, s._removeElement = function(e) {
143            var i = this;
144            if (p(e).removeClass("show"), p(e).hasClass("fade")) {
145                var t = m.getTransitionDurationFromElement(e);
146                p(e).one(m.TRANSITION_END, function(t) {
147                    return i._destroyElement(e, t)
148                }).emulateTransitionEnd(t)
149            } else this._destroyElement(e)
150        }, s._destroyElement = function(t) {
151            p(t).detach().trigger(d.CLOSED).remove()
152        }, g._jQueryInterface = function(i) {
153            return this.each(function() {
154                var t = p(this),
155                    e = t.data(l);
156                e || (e = new g(this), t.data(l, e)), "close" === i && e[i](this)
157            })
158        }, g._handleDismiss = function(e) {
159            return function(t) {
160                t && t.preventDefault(), e.close(this)
161            }
162        }, o(g, null, [{
163            key: "VERSION",
164            get: function() {
165                return "4.4.1"
166            }
167        }]), g);
168
169    function g(t) {
170        this._element = t
171    }
172    p(document).on(d.CLICK_DATA_API, '[data-dismiss="alert"]', f._handleDismiss(new f)), p.fn[a] = f._jQueryInterface, p.fn[a].Constructor = f, p.fn[a].noConflict = function() {
173        return p.fn[a] = c, f._jQueryInterface
174    };
175    var v, _ = "button",
176        y = "bs.button",
177        w = "." + y,
178        b = ".data-api",
179        C = p.fn[_],
180        E = "active",
181        x = '[data-toggle^="button"]',
182        T = 'input:not([type="hidden"])',
183        S = ".btn",
184        I = {
185            CLICK_DATA_API: "click" + w + b,
186            FOCUS_BLUR_DATA_API: "focus" + w + b + " blur" + w + b,
187            LOAD_DATA_API: "load" + w + b
188        },
189        A = ((v = k.prototype).toggle = function() {
190            var t = !0,
191                e = !0,
192                i = p(this._element).closest('[data-toggle="buttons"]')[0];
193            if (i) {
194                var n = this._element.querySelector(T);
195                if (n) {
196                    if ("radio" === n.type)
197                        if (n.checked && this._element.classList.contains(E)) t = !1;
198                        else {
199                            var s = i.querySelector(".active");
200                            s && p(s).removeClass(E)
201                        }
202                    else("checkbox" !== n.type || "LABEL" === this._element.tagName && n.checked === this._element.classList.contains(E)) && (t = !1);
203                    t && (n.checked = !this._element.classList.contains(E), p(n).trigger("change")), n.focus(), e = !1
204                }
205            }
206            this._element.hasAttribute("disabled") || this._element.classList.contains("disabled") || (e && this._element.setAttribute("aria-pressed", !this._element.classList.contains(E)), t && p(this._element).toggleClass(E))
207        }, v.dispose = function() {
208            p.removeData(this._element, y), this._element = null
209        }, k._jQueryInterface = function(e) {
210            return this.each(function() {
211                var t = p(this).data(y);
212                t || (t = new k(this), p(this).data(y, t)), "toggle" === e && t[e]()
213            })
214        }, o(k, null, [{
215            key: "VERSION",
216            get: function() {
217                return "4.4.1"
218            }
219        }]), k);
220
221    function k(t) {
222        this._element = t
223    }
224    p(document).on(I.CLICK_DATA_API, x, function(t) {
225        var e = t.target;
226        if (p(e).hasClass("btn") || (e = p(e).closest(S)[0]), !e || e.hasAttribute("disabled") || e.classList.contains("disabled")) t.preventDefault();
227        else {
228            var i = e.querySelector(T);
229            if (i && (i.hasAttribute("disabled") || i.classList.contains("disabled"))) return void t.preventDefault();
230            A._jQueryInterface.call(p(e), "toggle")
231        }
232    }).on(I.FOCUS_BLUR_DATA_API, x, function(t) {
233        var e = p(t.target).closest(S)[0];
234        p(e).toggleClass("focus", /^focus(in)?$/.test(t.type))
235    }), p(window).on(I.LOAD_DATA_API, function() {
236        for (var t = [].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')), e = 0, i = t.length; e < i; e++) {
237            var n = t[e],
238                s = n.querySelector(T);
239            s.checked || s.hasAttribute("checked") ? n.classList.add(E) : n.classList.remove(E)
240        }
241        for (var o = 0, r = (t = [].slice.call(document.querySelectorAll('[data-toggle="button"]'))).length; o < r; o++) {
242            var a = t[o];
243            "true" === a.getAttribute("aria-pressed") ? a.classList.add(E) : a.classList.remove(E)
244        }
245    }), p.fn[_] = A._jQueryInterface, p.fn[_].Constructor = A, p.fn[_].noConflict = function() {
246        return p.fn[_] = C, A._jQueryInterface
247    };
248    var D, O = "carousel",
249        N = "bs.carousel",
250        P = "." + N,
251        L = ".data-api",
252        j = p.fn[O],
253        z = {
254            interval: 5e3,
255            keyboard: !0,
256            slide: !1,
257            pause: "hover",
258            wrap: !0,
259            touch: !0
260        },
261        H = {
262            interval: "(number|boolean)",
263            keyboard: "boolean",
264            slide: "(boolean|string)",
265            pause: "(string|boolean)",
266            wrap: "boolean",
267            touch: "boolean"
268        },
269        M = "next",
270        R = "prev",
271        F = {
272            SLIDE: "slide" + P,
273            SLID: "slid" + P,
274            KEYDOWN: "keydown" + P,
275            MOUSEENTER: "mouseenter" + P,
276            MOUSELEAVE: "mouseleave" + P,
277            TOUCHSTART: "touchstart" + P,
278            TOUCHMOVE: "touchmove" + P,
279            TOUCHEND: "touchend" + P,
280            POINTERDOWN: "pointerdown" + P,
281            POINTERUP: "pointerup" + P,
282            DRAG_START: "dragstart" + P,
283            LOAD_DATA_API: "load" + P + L,
284            CLICK_DATA_API: "click" + P + L
285        },
286        W = "active",
287        $ = ".active.carousel-item",
288        q = {
289            TOUCH: "touch",
290            PEN: "pen"
291        },
292        B = ((D = U.prototype).next = function() {
293            this._isSliding || this._slide(M)
294        }, D.nextWhenVisible = function() {
295            !document.hidden && p(this._element).is(":visible") && "hidden" !== p(this._element).css("visibility") && this.next()
296        }, D.prev = function() {
297            this._isSliding || this._slide(R)
298        }, D.pause = function(t) {
299            t || (this._isPaused = !0), this._element.querySelector(".carousel-item-next, .carousel-item-prev") && (m.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null
300        }, D.cycle = function(t) {
301            t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval))
302        }, D.to = function(t) {
303            var e = this;
304            this._activeElement = this._element.querySelector($);
305            var i = this._getItemIndex(this._activeElement);
306            if (!(t > this._items.length - 1 || t < 0))
307                if (this._isSliding) p(this._element).one(F.SLID, function() {
308                    return e.to(t)
309                });
310                else {
311                    if (i === t) return this.pause(), void this.cycle();
312                    var n = i < t ? M : R;
313                    this._slide(n, this._items[t])
314                }
315        }, D.dispose = function() {
316            p(this._element).off(P), p.removeData(this._element, N), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null
317        }, D._getConfig = function(t) {
318            return t = r({}, z, {}, t), m.typeCheckConfig(O, t, H), t
319        }, D._handleSwipe = function() {
320            var t = Math.abs(this.touchDeltaX);
321            if (!(t <= 40)) {
322                var e = t / this.touchDeltaX;
323                (this.touchDeltaX = 0) < e && this.prev(), e < 0 && this.next()
324            }
325        }, D._addEventListeners = function() {
326            var e = this;
327            this._config.keyboard && p(this._element).on(F.KEYDOWN, function(t) {
328                return e._keydown(t)
329            }), "hover" === this._config.pause && p(this._element).on(F.MOUSEENTER, function(t) {
330                return e.pause(t)
331            }).on(F.MOUSELEAVE, function(t) {
332                return e.cycle(t)
333            }), this._config.touch && this._addTouchEventListeners()
334        }, D._addTouchEventListeners = function() {
335            var i = this;
336            if (this._touchSupported) {
337                var e = function(t) {
338                        i._pointerEvent && q[t.originalEvent.pointerType.toUpperCase()] ? i.touchStartX = t.originalEvent.clientX : i._pointerEvent || (i.touchStartX = t.originalEvent.touches[0].clientX)
339                    },
340                    n = function(t) {
341                        i._pointerEvent && q[t.originalEvent.pointerType.toUpperCase()] && (i.touchDeltaX = t.originalEvent.clientX - i.touchStartX), i._handleSwipe(), "hover" === i._config.pause && (i.pause(), i.touchTimeout && clearTimeout(i.touchTimeout), i.touchTimeout = setTimeout(function(t) {
342                            return i.cycle(t)
343                        }, 500 + i._config.interval))
344                    };
345                p(this._element.querySelectorAll(".carousel-item img")).on(F.DRAG_START, function(t) {
346                    return t.preventDefault()
347                }), this._pointerEvent ? (p(this._element).on(F.POINTERDOWN, function(t) {
348                    return e(t)
349                }), p(this._element).on(F.POINTERUP, function(t) {
350                    return n(t)
351                }), this._element.classList.add("pointer-event")) : (p(this._element).on(F.TOUCHSTART, function(t) {
352                    return e(t)
353                }), p(this._element).on(F.TOUCHMOVE, function(t) {
354                    var e;
355                    (e = t).originalEvent.touches && 1 < e.originalEvent.touches.length ? i.touchDeltaX = 0 : i.touchDeltaX = e.originalEvent.touches[0].clientX - i.touchStartX
356                }), p(this._element).on(F.TOUCHEND, function(t) {
357                    return n(t)
358                }))
359            }
360        }, D._keydown = function(t
360) {
361            if (!/input|textarea/i.test(t.target.tagName)) switch (t.which) {
362                case 37:
363                    t.preventDefault(), this.prev();
364                    break;
365                case 39:
366                    t.preventDefault(), this.next()
367            }
368        }, D._getItemIndex = function(t) {
369            return this._items = t && t.parentNode ? [].slice.call(t.parentNode.querySelectorAll(".carousel-item")) : [], this._items.indexOf(t)
370        }, D._getItemByDirection = function(t, e) {
371            var i = t === M,
372                n = t === R,
373                s = this._getItemIndex(e),
374                o = this._items.length - 1;
375            if ((n && 0 === s || i && s === o) && !this._config.wrap) return e;
376            var r = (s + (t === R ? -1 : 1)) % this._items.length;
377            return -1 == r ? this._items[this._items.length - 1] : this._items[r]
378        }, D._triggerSlideEvent = function(t, e) {
379            var i = this._getItemIndex(t),
380                n = this._getItemIndex(this._element.querySelector($)),
381                s = p.Event(F.SLIDE, {
382                    relatedTarget: t,
383                    direction: e,
384                    from: n,
385                    to: i
386                });
387            return p(this._element).trigger(s), s
388        }, D._setActiveIndicatorElement = function(t) {
389            if (this._indicatorsElement) {
390                var e = [].slice.call(this._indicatorsElement.querySelectorAll(".active"));
391                p(e).removeClass(W);
392                var i = this._indicatorsElement.children[this._getItemIndex(t)];
393                i && p(i).addClass(W)
394            }
395        }, D._slide = function(t, e) {
396            var i, n, s, o = this,
397                r = this._element.querySelector($),
398                a = this._getItemIndex(r),
399                l = e || r && this._getItemByDirection(t, r),
400                h = this._getItemIndex(l),
401                c = Boolean(this._interval);
402            if (s = t === M ? (i = "carousel-item-left", n = "carousel-item-next", "left") : (i = "carousel-item-right", n = "carousel-item-prev", "right"), l && p(l).hasClass(W)) this._isSliding = !1;
403            else if (!this._triggerSlideEvent(l, s).isDefaultPrevented() && r && l) {
404                this._isSliding = !0, c && this.pause(), this._setActiveIndicatorElement(l);
405                var u = p.Event(F.SLID, {
406                    relatedTarget: l,
407                    direction: s,
408                    from: a,
409                    to: h
410                });
411                if (p(this._element).hasClass("slide")) {
412                    p(l).addClass(n), m.reflow(l), p(r).addClass(i), p(l).addClass(i);
413                    var d = parseInt(l.getAttribute("data-interval"), 10);
414                    d ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = d) : this._config.interval = this._config.defaultInterval || this._config.interval;
415                    var f = m.getTransitionDurationFromElement(r);
416                    p(r).one(m.TRANSITION_END, function() {
417                        p(l).removeClass(i + " " + n).addClass(W), p(r).removeClass(W + " " + n + " " + i), o._isSliding = !1, setTimeout(function() {
418                            return p(o._element).trigger(u)
419                        }, 0)
420                    }).emulateTransitionEnd(f)
421                } else p(r).removeClass(W), p(l).addClass(W), this._isSliding = !1, p(this._element).trigger(u);
422                c && this.cycle()
423            }
424        }, U._jQueryInterface = function(n) {
425            return this.each(function() {
426                var t = p(this).data(N),
427                    e = r({}, z, {}, p(this).data());
428                "object" == typeof n && (e = r({}, e, {}, n));
429                var i = "string" == typeof n ? n : e.slide;
430                if (t || (t = new U(this, e), p(this).data(N, t)), "number" == typeof n) t.to(n);
431                else if ("string" == typeof i) {
432                    if (void 0 === t[i]) throw new TypeError('No method named "' + i + '"');
433                    t[i]()
434                } else e.interval && e.ride && (t.pause(), t.cycle())
435            })
436        }, U._dataApiClickHandler = function(t) {
437            var e = m.getSelectorFromElement(this);
438            if (e) {
439                var i = p(e)[0];
440                if (i && p(i).hasClass("carousel")) {
441                    var n = r({}, p(i).data(), {}, p(this).data()),
442                        s = this.getAttribute("data-slide-to");
443                    s && (n.interval = !1), U._jQueryInterface.call(p(i), n), s && p(i).data(N).to(s), t.preventDefault()
444                }
445            }
446        }, o(U, null, [{
447            key: "VERSION",
448            get: function() {
449                return "4.4.1"
450            }
451        }, {
452            key: "Default",
453            get: function() {
454                return z
455            }
456        }]), U);
457
458    function U(t, e) {
459        this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(e), this._element = t, this._indicatorsElement = this._element.querySelector(".carousel-indicators"), this._touchSupported = "ontouchstart" in document.documentElement || 0 < navigator.maxTouchPoints, this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent), this._addEventListeners()
460    }
461    p(document).on(F.CLICK_DATA_API, "[data-slide], [data-slide-to]", B._dataApiClickHandler), p(window).on(F.LOAD_DATA_API, function() {
462        for (var t = [].slice.call(document.querySelectorAll('[data-ride="carousel"]')), e = 0, i = t.length; e < i; e++) {
463            var n = p(t[e]);
464            B._jQueryInterface.call(n, n.data())
465        }
466    }), p.fn[O] = B._jQueryInterface, p.fn[O].Constructor = B, p.fn[O].noConflict = function() {
467        return p.fn[O] = j, B._jQueryInterface
468    };
469    var Q, K = "collapse",
470        V = "bs.collapse",
471        Y = "." + V,
472        Z = p.fn[K],
473        X = {
474            toggle: !0,
475            parent: ""
476        },
477        G = {
478            toggle: "boolean",
479            parent: "(string|element)"
480        },
481        J = {
482            SHOW: "show" + Y,
483            SHOWN: "shown" + Y,
484            HIDE: "hide" + Y,
485            HIDDEN: "hidden" + Y,
486            CLICK_DATA_API: "click" + Y + ".data-api"
487        },
488        tt = "show",
489        et = "collapse",
490        it = "collapsing",
491        nt = "collapsed",
492        st = '[data-toggle="collapse"]',
493        ot = ((Q = rt.prototype).toggle = function() {
494            p(this._element).hasClass(tt) ? this.hide() : this.show()
495        }, Q.show = function() {
496            var t, e, i = this;
497            if (!(this._isTransitioning || p(this._element).hasClass(tt) || (this._parent && 0 === (t = [].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter(function(t) {
498                    return "string" == typeof i._config.parent ? t.getAttribute("data-parent") === i._config.parent : t.classList.contains(et)
499                })).length && (t = null), t && (e = p(t).not(this._selector).data(V)) && e._isTransitioning))) {
500                var n = p.Event(J.SHOW);
501                if (p(this._element).trigger(n), !n.isDefaultPrevented()) {
502                    t && (rt._jQueryInterface.call(p(t).not(this._selector), "hide"), e || p(t).data(V, null));
503                    var s = this._getDimension();
504                    p(this._element).removeClass(et).addClass(it), this._element.style[s] = 0, this._triggerArray.length && p(this._triggerArray).removeClass(nt).attr("aria-expanded", !0), this.setTransitioning(!0);
505                    var o = "scroll" + (s[0].toUpperCase() + s.slice(1)),
506                        r = m.getTransitionDurationFromElement(this._element);
507                    p(this._element).one(m.TRANSITION_END, function() {
508                        p(i._element).removeClass(it).addClass(et).addClass(tt), i._element.style[s] = "", i.setTransitioning(!1), p(i._element).trigger(J.SHOWN)
509                    }).emulateTransitionEnd(r), this._element.style[s] = this._element[o] + "px"
510                }
511            }
512        }, Q.hide = function() {
513            var t = this;
514            if (!this._isTransitioning && p(this._element).hasClass(tt)) {
515                var e = p.Event(J.HIDE);
516                if (p(this._element).trigger(e), !e.isDefaultPrevented()) {
517                    var i = this._getDimension();
518                    this._element.style[i] = this._element.getBoundingClientRect()[i] + "px", m.reflow(this._element), p(this._element).addClass(it).removeClass(et).removeClass(tt);
519                    var n = this._triggerArray.length;
520                    if (0 < n)
521                        for (var s = 0; s < n; s++) {
522                            var o = this._triggerArray[s],
523                                r = m.getSelectorFromElement(o);
524                            null !== r && (p([].slice.call(document.querySelectorAll(r))).hasClass(tt) || p(o).addClass(nt).attr("aria-expanded", !1))
525                        }
526                    this.setTransitioning(!0), this._element.style[i] = "";
527                    var a = m.getTransitionDurationFromElement(this._element);
528                    p(this._element).one(m.TRANSITION_END, function() {
529                        t.setTransitioning(!1), p(t._element).removeClass(it).addClass(et).trigger(J.HIDDEN)
530                    }).emulateTransitionEnd(a)
531                }
532            }
533        }, Q.setTransitioning = function(t) {
534            this._isTransitioning = t
535        }, Q.dispose = function() {
536            p.removeData(this._element, V), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null
537        }, Q._getConfig = function(t) {
538            return (t = r({}, X, {}, t)).toggle = Boolean(t.toggle), m.typeCheckConfig(K, t, G), t
539        }, Q._getDimension = function() {
540            return p(this._element).hasClass("width") ? "width" : "height"
541        }, Q._getParent = function() {
542            var t, i = this;
543            m.isElement(this._config.parent) ? (t = this._config.parent, void 0 !== this._config.parent.jquery && (t = this._config.parent[0])) : t = document.querySelector(this._config.parent);
544            var e = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]',
545                n = [].slice.call(t.querySelectorAll(e));
546            return p(n).each(function(t, e) {
547                i._addAriaAndCollapsedClass(rt._getTargetFromElement(e), [e])
548            }), t
549        }, Q._addAriaAndCollapsedClass = function(t, e) {
550            var i = p(t).hasClass(tt);
551            e.length && p(e).toggleClass(nt, !i).attr("aria-expanded", i)
552        }, rt._getTargetFromElement = function(t) {
553            var e = m.getSelectorFromElement(t);
554            return e ? document.querySelector(e) : null
555        }, rt._jQueryInterface = function(n) {
556            return this.each(function() {
557                var t = p(this),
558                    e = t.data(V),
559                    i = r({}, X, {}, t.data(), {}, "object" == typeof n && n ? n : {});
560                if (!e && i.toggle && /show|hide/.test(n) && (i.toggle = !1), e || (e = new rt(this, i), t.data(V, e)), "string" == typeof n) {
561                    if (void 0 === e[n]) throw new TypeError('No method n
561amed "' + n + '"');
562                    e[n]()
563                }
564            })
565        }, o(rt, null, [{
566            key: "VERSION",
567            get: function() {
568                return "4.4.1"
569            }
570        }, {
571            key: "Default",
572            get: function() {
573                return X
574            }
575        }]), rt);
576
577    function rt(e, t) {
578        this._isTransitioning = !1, this._element = e, this._config = this._getConfig(t), this._triggerArray = [].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#' + e.id + '"],[data-toggle="collapse"][data-target="#' + e.id + '"]'));
579        for (var i = [].slice.call(document.querySelectorAll(st)), n = 0, s = i.length; n < s; n++) {
580            var o = i[n],
581                r = m.getSelectorFromElement(o),
582                a = [].slice.call(document.querySelectorAll(r)).filter(function(t) {
583                    return t === e
584                });
585            null !== r && 0 < a.length && (this._selector = r, this._triggerArray.push(o))
586        }
587        this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle()
588    }
589    p(document).on(J.CLICK_DATA_API, st, function(t) {
590        "A" === t.currentTarget.tagName && t.preventDefault();
591        var i = p(this),
592            e = m.getSelectorFromElement(this),
593            n = [].slice.call(document.querySelectorAll(e));
594        p(n).each(function() {
595            var t = p(this),
596                e = t.data(V) ? "toggle" : i.data();
597            ot._jQueryInterface.call(t, e)
598        })
599    }), p.fn[K] = ot._jQueryInterface, p.fn[K].Constructor = ot, p.fn[K].noConflict = function() {
600        return p.fn[K] = Z, ot._jQueryInterface
601    };
602    var at, lt = "dropdown",
603        ht = "bs.dropdown",
604        ct = "." + ht,
605        ut = ".data-api",
606        dt = p.fn[lt],
607        ft = new RegExp("38|40|27"),
608        pt = {
609            HIDE: "hide" + ct,
610            HIDDEN: "hidden" + ct,
611            SHOW: "show" + ct,
612            SHOWN: "shown" + ct,
613            CLICK: "click" + ct,
614            CLICK_DATA_API: "click" + ct + ut,
615            KEYDOWN_DATA_API: "keydown" + ct + ut,
616            KEYUP_DATA_API: "keyup" + ct + ut
617        },
618        mt = "disabled",
619        gt = "show",
620        vt = "dropdown-menu-right",
621        _t = '[data-toggle="dropdown"]',
622        yt = ".dropdown-menu",
623        wt = {
624            offset: 0,
625            flip: !0,
626            boundary: "scrollParent",
627            reference: "toggle",
628            display: "dynamic",
629            popperConfig: null
630        },
631        bt = {
632            offset: "(number|string|function)",
633            flip: "boolean",
634            boundary: "(string|element)",
635            reference: "(string|element)",
636            display: "string",
637            popperConfig: "(null|object)"
638        },
639        Ct = ((at = Et.prototype).toggle = function() {
640            if (!this._element.disabled && !p(this._element).hasClass(mt)) {
641                var t = p(this._menu).hasClass(gt);
642                Et._clearMenus(), t || this.show(!0)
643            }
644        }, at.show = function(t) {
645            if (void 0 === t && (t = !1), !(this._element.disabled || p(this._element).hasClass(mt) || p(this._menu).hasClass(gt))) {
646                var e = {
647                        relatedTarget: this._element
648                    },
649                    i = p.Event(pt.SHOW, e),
650                    n = Et._getParentFromElement(this._element);
651                if (p(n).trigger(i), !i.isDefaultPrevented()) {
652                    if (!this._inNavbar && t) {
653                        if (void 0 === u) throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");
654                        var s = this._element;
655                        "parent" === this._config.reference ? s = n : m.isElement(this._config.reference) && (s = this._config.reference, void 0 !== this._config.reference.jquery && (s = this._config.reference[0])), "scrollParent" !== this._config.boun
655dary && p(n).addClass("position-static"), this._popper = new u(s, this._menu, this._getPopperConfig())
656                    }
657                    "ontouchstart" in document.documentElement && 0 === p(n).closest(".navbar-nav").length && p(document.body).children().on("mouseover", null, p.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), p(this._menu).toggleClass(gt), p(n).toggleClass(gt).trigger(p.Event(pt.SHOWN, e))
658                }
659            }
660        }, at.hide = function() {
661            if (!this._element.disabled && !p(this._element).hasClass(mt) && p(this._menu).hasClass(gt)) {
662                var t = {
663                        relatedTarget: this._element
664                    },
665                    e = p.Event(pt.HIDE, t),
666                    i = Et._getParentFromElement(this._element);
667                p(i).trigger(e), e.isDefaultPrevented() || (this._popper && this._popper.destroy(), p(this._menu).toggleClass(gt), p(i).toggleClass(gt).trigger(p.Event(pt.HIDDEN, t)))
668            }
669        }, at.dispose = function() {
670            p.removeData(this._element, ht), p(this._element).off(ct), this._element = null, (this._menu = null) !== this._popper && (this._popper.destroy(), this._popper = null)
671        }, at.update = function() {
672            this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate()
673        }, at._addEventListeners = function() {
674            var e = this;
675            p(this._element).on(pt.CLICK, function(t) {
676                t.preventDefault(), t.stopPropagation(), e.toggle()
677            })
678        }, at._getConfig = function(t) {
679            return t = r({}, this.constructor.Default, {}, p(this._element).data(), {}, t), m.typeCheckConfig(lt, t, this.constructor.DefaultType), t
680        }, at._getMenuElement = function() {
681            if (!this._menu) {
682                var t = Et._getParentFromElement(this._element);
683                t && (this._menu = t.querySelector(yt))
684            }
685            return this._menu
686        }, at._getPlacement = function() {
687            var t = p(this._element.parentNode),
688                e = "bottom-start";
689            return t.hasClass("dropup") ? (e = "top-start", p(this._menu).hasClass(vt) && (e = "top-end")) : t.hasClass("dropright") ? e = "right-start" : t.hasClass("dropleft") ? e = "left-start" : p(this._menu).hasClass(vt) && (e = "bottom-end"), e
690        }, at._detectNavbar = function() {
691            return 0 < p(this._element).closest(".navbar").length
692        }, at._getOffset = function() {
693            var e = this,
694                t = {};
695            return "function" == typeof this._config.offset ? t.fn = function(t) {
696                return t.offsets = r({}, t.offsets, {}, e._config.offset(t.offsets, e._element) || {}), t
697            } : t.offset = this._config.offset, t
698        }, at._getPopperConfig = function() {
699            var t = {
700                placement: this._getPlacement(),
701                modifiers: {
702                    offset: this._getOffset(),
703                    flip: {
704                        enabled: this._config.flip
705                    },
706                    preventOverflow: {
707                        boundariesElement: this._config.boundary
708                    }
709                }
710            };
711            return "static" === this._config.display && (t.modifiers.applyStyle = {
712                enabled: !1
713            }), r({}, t, {}, this._config.popperConfig)
714        }, Et._jQueryInterface = function(e) {
715            return this.each(function() {
716                var t = p(this).data(ht);
717                if (t || (t = new Et(this, "object" == typeof e ? e : null), p(this).data(ht, t)), "string" == typeof e) {
718                    if (void 0 === t[e]) throw new TypeError('No method named "' + e + '"');
719                    t[e]()
720                }
721            })
722        }, Et._clearMenus = function(t) {
723            if (!t || 3 !== t.which && ("keyup" !== t.type || 9 === t.which))
724                for (var e = [].slice.call(document.querySelectorAll(_t)), i = 0, n = e.length; i < n; i++) {
725                    var s = Et._getParentFromElement(e[i]),
726                        o = p(e[i]).data(ht),
727                        r = {
728                            relatedTarget: e[i]
729                        };
730                    if (t && "click" === t.type && (r.clickEvent = t), o) {
731                        var a = o._menu;
732                        if (p(s).hasClass(gt) && !(t && ("click" === t.type && /input|textarea/i.test(t.target.tagName) || "keyup" === t.type && 9 === t.which) && p.contains(s, t.target))) {
733                            var l = p.Event(pt.HIDE, r);
734                            p(s).trigger(l), l.isDefaultPrevented() || ("ontouchstart" in document.documentElement && p(document.body).children().off("mouseover", null, p.noop), e[i].setAttribute("aria-expanded", "false"), o._popper && o._popper.destroy(), p(a).removeClass(gt), p(s).removeClass(gt).trigger(p.Event(pt.HIDDEN, r)))
735                        }
736                    }
737                }
738        }, Et._getParentFromElement = function(t) {
739            var e, i = m.getSelectorFromElement(t);
740            return i && (e = document.querySelector(i)), e || t.parentNode
741        }, Et._dataApiKeydownHandler = function(t) {
742            if ((/input|textarea/i.test(t.target.tagName) ? !(32 === t.which || 27 !== t.which && (40 !== t.which && 38 !== t.which || p(t.target).closest(yt).length)) : ft.test(t.which)) && (t.preventDefault(), t.stopPropagation(), !this.disabled && !p(this).hasClass(mt))) {
743                var e = Et._getParentFromElement(this),
744                    i = p(e).hasClass(gt);
745                if (i || 27 !== t.which)
746                    if (i && (!i || 27 !== t.which && 32 !== t.which)) {
747                        var n = [].slice.call(e.querySelectorAll(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)")).filter(function(t) {
748                            return p(t).is(":visible")
749                        });
750                        if (0 !== n.length) {
751                            var s = n.indexOf(t.target);
752                            38 === t.which && 0 < s && s--, 40 === t.which && s < n.length - 1 && s++, s < 0 && (s = 0), n[s].focus()
753                        }
754                    } else {
755                        if (27 === t.which) {
756                            var o = e.querySelector(_t);
757                            p(o).trigger("focus")
758                        }
759                        p(this).trigger("click")
760                    }
761            }
762        }, o(Et, null, [{
763            key: "VERSION",
764            get: function() {
765                return "4.4.1"
766            }
767        }, {
768            key: "Default",
769            get: function() {
770                return wt
771            }
772        }, {
773            key: "DefaultType",
774            get: function() {
775                return bt
776            }
777        }]), Et);
778
779    function Et(t, e) {
780        this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners()
781    }
782    p(document).on(pt.KEYDOWN_DATA_API, _t, Ct._dataApiKeydownHandler).on(pt.KEYDOWN_DATA_API, yt, Ct._dataApiKeydownHandler).on(pt.CLICK_DATA_API + " " + pt.KEYUP_DATA_API, Ct._clearMenus).on(pt.CLICK_DATA_API, _t, function(t) {
783        t.preventDefault(), t.stopPropagation(), Ct._jQueryInterface.call(p(this), "toggle")
784    }).on(pt.CLICK_DATA_API, ".dropdown form", function(t) {
785        t.stopPropagation()
786    }), p.fn[lt] = Ct._jQueryInterface, p.fn[lt].Constructor = Ct, p.fn[lt].noConflict = function() {
787        return p.fn[lt] = dt, Ct._jQueryInterface
788    };
789    var xt, Tt = "modal",
790        St = "bs.modal",
791        It = "." + St,
792        At = p.fn[Tt],
793        kt = {
794            backdrop: !0,
795            keyboard: !0,
796            focus: !0,
797            show: !0
798        },
799        Dt = {
800            backdrop: "(boolean|string)",
801            keyboard: "boolean",
802            focus: "boolean",
803            show: "boolean"
804        },
805        Ot = {
806            HIDE: "hide" + It,
807            HIDE_PREVENTED: "hidePrevented" + It,
808            HIDDEN: "hidden" + It,
809            SHOW: "show" + It,
810            SHOWN: "shown" + It,
811            FOCUSIN: "focusin" + It,
812            RESIZE: "resize" + It,
813            CLICK_DISMISS: "click.dismiss" + It,
814            KEYDOWN_DISMISS: "keydown.dismiss" + It,
815            MOUSEUP_DISMISS: "mouseup.dismiss" + It,
816            MOUSEDOWN_DISMISS: "mousedown.dismiss" + It,
817            CLICK_DATA_API: "click" + It + ".data-api"
818        },
819        Nt = "modal-open",
820        Pt = "fade",
821        Lt = "show",
822        jt = "modal-static",
823        zt = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
824        Ht = ".sticky-top",
825        Mt = ((xt = Rt.prototype).toggle = function(t) {
826            return this._isShown ? this.hide() : this.show(t)
827        }, xt.show = function(t) {
828            var e = this;
829            if (!this._isShown && !this._isTransitioning) {
830                p(this._element).hasClass(Pt) && (this._isTransitioning = !0);
831                var i = p.Event(Ot.SHOW, {
832                    relatedTarget: t
833                });
834                p(this._element).trigger(i), this._isShown || i.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), p(this._element).on(Ot.CLICK_DISMISS, '[data-dismiss="modal"]', function(t) {
835                    return e.hide(t)
836                }), p(this._dialog).on(Ot.MOUSEDOWN_DISMISS, function() {
837                    p(e._element).one(Ot.MOUSEUP_DISMISS, function(t) {
838                        p(t.target).is(e._element) && (e._ignoreBackdropClick = !0)
839                    })
840                }), this._showBackdrop(function() {
841                    return e._showElement(t)
842                }))
843            }
844        }, xt.hide = function(t) {
845            var e = this;
846            if (t && t.preventDefault(), this._isShown && !this._isTransitioning) {
847                var i = p.Event(Ot.HIDE);
848                if (p(this._element).trigger(i), this._isShown && !i.isDefaultPrevented()) {
849                    this._isShown = !1;
850                    var n = p(this._element).hasClass(Pt);
851                    if (n && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), p(document).off(Ot.FOCUSIN), p(this._element).removeClass(Lt), p(this._element).off(Ot.CLICK_DISMISS), p(this._dialog).off(Ot.MOUSEDOWN_DISMISS), n) {
852                        var s = m.getTransitionDurationFromElement(this._element);
853                        p(this._element).one(m.TRANSITION_END, function(t) {
854                            return e._hideModal(t)
855                        }).emulateTransitionEnd(s)
856                    } else this._hideModal()
857                }
858            }
859        }, xt.dispose = function() {
860            [window, this._element, this._dialog].forEach(function(t) {
861                return p(t).off(It)
862            }), p(document).off(Ot.FOCUSIN), p.removeData(this._element, St), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null
863        }, xt.handleUpdate = function() {
864            this._adjustDialog()
865        }, xt._getConfig = function(t) {
866            return t = r({}, kt, {}, t), m.typeCheckConfig(Tt, t, Dt), t
867        }, xt._triggerBackdropTransition = function() {
868            var t = this;
869            if ("static" === this._config.backdrop) {
870                var e = p.Event(Ot.HIDE_PREVENTED);
871                if (p(this._element).trigger(e), e.defaultPrevented) return;
872                this._element.classList.add(jt);
873                var i = m.getTransitionDurationFromElement(this._element);
874                p(this._element).one(m.TRANSITION_END, function() {
875                    t._element.classList.remove(jt)
876                }).emulateTransitionEnd(i), this._element.focus()
877            } else this.hide()
878        }, xt._showElement = function(t) {
879            var e = this,
880                i = p(this._element).hasClass(Pt),
881                n = this._dialog ? this._dialog.querySelector(".modal-body") : null;
882
883            function s() {
884                e._config.focus && e._element.focus(), e._isTransitioning = !1, p(e._element).trigger(o)
885            }
886            this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), p(this._dialog).hasClass("modal-dialog-scrollable") && n ? n.scrollTop = 0 : this._element.scrollTop = 0, i && m.reflow(this._element), p(this._element).addClass(Lt), this._config.focus && this._enforceFocus();
887            var o = p.Event(Ot.SHOWN, {
888                relatedTarget: t
889            });
890            if (i) {
891                var r = m.getTransitionDurationFromElement(this._dialog);
892                p(this._dialog).one(m.TRANSITION_END, s).emulateTransitionEnd(r)
893            } else s()
894        }, xt._enforceFocus = function() {
895            var e = this;
896            p(document).off(Ot.FOCUSIN).on(Ot.FOCUSIN, function(t) {
897                document !== t.target && e._element !== t.target && 0 === p(e._element).has(t.target).length && e._element.focus()
898            })
899        }, xt._setEscapeEvent = function() {
900            var e = this;
901            this._isShown && this._config.keyboard ? p(this._element).on(Ot.KEYDOWN_DISMISS, function(t) {
902                27 === t.which && e._triggerBackdropTransition()
903            }) : this._isShown || p(this._element).off(Ot.KEYDOWN_DISMISS)
904        }, xt._setResizeEvent = function() {
905            var e = this;
906            this._isShown ? p(window).on(Ot.RESIZE, function(t) {
907                return e.handleUpdate(t)
908            }) : p(window).off(Ot.RESIZE)
909        }, xt._hideModal = function() {
910            var t = this;
911            this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._isTransitioning = !1, this._showBackdrop(function() {
912                p(document.body).removeClass(Nt), t._resetAdjustments(), t._resetScrollbar(), p(t._element).trigger(Ot.HIDDEN)
913            })
914        }, xt._removeBackdrop = function() {
915            this._backdrop && (p(this._backdrop).remove(), this._backdrop = null)
916        }, xt._showBackdrop = function(t) {
917            var e = this,
918                i = p(this._element).hasClass(Pt) ? Pt : "";
919            if (this._isShown && this._config.backdrop) {
920                if (this._backdrop = document.createElement("div"), this._backdrop.className = "modal
920-backdrop", i && this._backdrop.classList.add(i), p(this._backdrop).appendTo(document.body), p(this._element).on(Ot.CLICK_DISMISS, function(t) {
921                        e._ignoreBackdropClick ? e._ignoreBackdropClick = !1 : t.target === t.currentTarget && e._triggerBackdropTransition()
922                    }), i && m.reflow(this._backdrop), p(this._backdrop).addClass(Lt), !t) return;
923                if (!i) return void t();
924                var n = m.getTransitionDurationFromElement(this._backdrop);
925                p(this._backdrop).one(m.TRANSITION_END, t).emulateTransitionEnd(n)
926            } else if (!this._isShown && this._backdrop) {
927                p(this._backdrop).removeClass(Lt);
928                var s = function() {
929                    e._removeBackdrop(), t && t()
930                };
931                if (p(this._element).hasClass(Pt)) {
932                    var o = m.getTransitionDurationFromElement(this._backdrop);
933                    p(this._backdrop).one(m.TRANSITION_END, s).emulateTransitionEnd(o)
934                } else s()
935            } else t && t()
936        }, xt._adjustDialog = function() {
937            var t = this._element.scrollHeight > document.documentElement.clientHeight;
938            !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + "px")
939        }, xt._resetAdjustments = function() {
940            this._element.style.paddingLeft = "", this._element.style.paddingRight = ""
941        }, xt._checkScrollbar = function() {
942            var t = document.body.getBoundingClientRect();
943            this._isBodyOverflowing = t.left + t.right < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth()
944        }, xt._setScrollbar = function() {
945            var s = this;
946            if (this._isBodyOverflowing) {
947                var t = [].slice.call(document.querySelectorAll(zt)),
948                    e = [].slice.call(document.querySelectorAll(Ht));
949                p(t).each(function(t, e) {
950                    var i = e.style.paddingRight,
951                        n = p(e).css("padding-right");
952                    p(e).data("padding-right", i).css("padding-right", parseFloat(n) + s._scrollbarWidth + "px")
953                }), p(e).each(function(t, e) {
954                    var i = e.style.marginRight,
955                        n = p(e).css("margin-right");
956                    p(e).data("margin-right", i).css("margin-right", parseFloat(n) - s._scrollbarWidth + "px")
957                });
958                var i = document.body.style.paddingRight,
959                    n = p(document.body).css("padding-right");
960                p(document.body).data("padding-right", i).css("padding-right", parseFloat(n) + this._scrollbarWidth + "px")
961            }
962            p(document.body).addClass(Nt)
963        }, xt._resetScrollbar = function() {
964            var t = [].slice.call(document.querySelectorAll(zt));
965            p(t).each(function(t, e) {
966                var i = p(e).data("padding-right");
967                p(e).removeData("padding-right"), e.style.paddingRight = i || ""
968            });
969            var e = [].slice.call(document.querySelectorAll(Ht));
970            p(e).each(function(t, e) {
971                var i = p(e).data("margin-right");
972                void 0 !== i && p(e).css("margin-right", i).removeData("margin-right")
973            });
974            var i = p(document.body).data("padding-right");
975            p(document.body).removeData("padding-right"), document.body.style.paddingRight = i || ""
976        }, xt._getScrollbarWidth = function() {
977            var t = document.createElement("div");
978            t.className = "modal-scrollbar-measure", document.body.appendChild(t);
979            var e = t.getBoundingClientRect().width - t.clientWidth;
980            return document.body.removeChild(t), e
981        }, Rt._jQueryInterface = function(i, n) {
982            return this.each(function() {
983                var t = p(this).data(St),
984                    e = r({}, kt, {}, p(this).data(), {}, "object" == typeof i && i ? i : {});
985                if (t || (t = new Rt(this, e), p(this).data(St, t)), "string" == typeof i) {
986                    if (void 0 === t[i]) throw new TypeError('No method n
986amed "' + i + '"');
987                    t[i](n)
988                } else e.show && t.show(n)
989            })
990        }, o(Rt, null, [{
991            key: "VERSION",
992            get: function() {
993                return "4.4.1"
994            }
995        }, {
996            key: "Default",
997            get: function() {
998                return kt
999            }
1000        }]), Rt);
1001
1002    function Rt(t, e) {
1003        this._config = this._getConfig(e), this._element = t, this._dialog = t.querySelector(".modal-dialog"), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollbarWidth = 0
1004    }
1005    p(document).on(Ot.CLICK_DATA_API, '[data-toggle="modal"]', function(t) {
1006        var e, i = this,
1007            n = m.getSelectorFromElement(this);
1008        n && (e = document.querySelector(n));
1009        var s = p(e).data(St) ? "toggle" : r({}, p(e).data(), {}, p(this).data());
1010        "A" !== this.tagName && "AREA" !== this.tagName || t.preventDefault();
1011        var o = p(e).one(Ot.SHOW, function(t) {
1012            t.isDefaultPrevented() || o.one(Ot.HIDDEN, function() {
1013                p(i).is(":visible") && i.focus()
1014            })
1015        });
1016        Mt._jQueryInterface.call(p(e), s, this)
1017    }), p.fn[Tt] = Mt._jQueryInterface, p.fn[Tt].Constructor = Mt, p.fn[Tt].noConflict = function() {
1018        return p.fn[Tt] = At, Mt._jQueryInterface
1019    };
1020    var Ft = ["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"],
1021        Wt = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,
1022        $t = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;
1023
1024    function qt(t, o, e) {
1025        if (0 === t.length) return t;
1026        if (e && "function" == typeof e) return e(t);
1027        for (var i = (new window.DOMParser).parseFromString(t, "text/html"), r = Object.keys(o), a = [].slice.call(i.body.querySelectorAll("*")), n = function(t) {
1028                var e = a[t],
1029                    i = e.nodeName.toLowerCase();
1030                if (-1 === r.indexOf(e.nodeName.toLowerCase())) return e.parentNode.removeChild(e), "continue";
1031                var n = [].slice.call(e.attributes),
1032                    s = [].concat(o["*"] || [], o[i] || []);
1033                n.forEach(function(t) {
1034                    ! function(t, e) {
1035                        var i = t.nodeName.toLowerCase();
1036                        if (-1 !== e.indexOf(i)) return -1 === Ft.indexOf(i) || Boolean(t.nodeValue.match(Wt) || t.nodeValue.match($t));
1037                        for (var n = e.filter(function(t) {
1038                                return t instanceof RegExp
1039                            }), s = 0, o = n.length; s < o; s++)
1040                            if (i.match(n[s])) return 1
1041                    }(t, s) && e.removeAttribute(t.nodeName)
1042                })
1043            }, s = 0, l = a.length; s < l; s++) n(s);
1044        return i.body.innerHTML
1045    }
1046    var Bt, Ut = "tooltip",
1047        Qt = "bs.tooltip",
1048        Kt = "." + Qt,
1049        Vt = p.fn[Ut],
1050        Yt = "bs-tooltip",
1051        Zt = new RegExp("(^|\\s)" + Yt + "\\S+", "g"),
1052        Xt = ["sanitize", "whiteList", "sanitizeFn"],
1053        Gt = {
1054            animation: "boolean",
1055            template: "string",
1056            title: "(string|element|function)",
1057            trigger: "string",
1058            delay: "(number|object)",
1059            html: "boolean",
1060            selector: "(string|boolean)",
1061            placement: "(string|function)",
1062            offset: "(number|string|function)",
1063            container: "(string|element|boolean)",
1064            fallbackPlacement: "(string|array)",
1065            boundary: "(string|element)",
1066            sanitize: "boolean",
1067            sanitizeFn: "(null|function)",
1068            whiteList: "object",
1069            popperConfig: "(null|object)"
1070        },
1071        Jt = {
1072            AUTO: "auto",
1073            TOP: "top",
1074            RIGHT: "right",
1075            BOTTOM: "bottom",
1076            LEFT: "left"
1077        },
1078        te = {
1079            animation: !0,
1080            template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',
1081            trigger: "hover focus",
1082            title: "",
1083            delay: 0,
1084            html: !1,
1085            selector: !1,
1086            placement: "top",
1087            offset: 0,
1088            container: !1,
1089            fallbackPlacement: "flip",
1090            boundary: "scrollParent",
1091            sanitize: !0,
1092            sanitizeFn: null,
1093            whiteList: {
1094                "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
1095                a: ["target", "href", "title", "rel"],
1096                area: [],
1097                b: [],
1098                br: [],
1099                col: [],
1100                code: [],
1101                div: [],
1102                em: [],
1103                hr: [],
1104                h1: [],
1105                h2: [],
1106                h3: [],
1107                h4: [],
1108                h5: [],
1109                h6: [],
1110                i: [],
1111                img: ["src", "alt", "title", "width", "height"],
1112                li: [],
1113                ol: [],
1114                p: [],
1115                pre: [],
1116                s: [],
1117                small: [],
1118                span: [],
1119                sub: [],
1120                sup: [],
1121                strong: [],
1122                u: [],
1123                ul: []
1124            },
1125            popperConfig: null
1126        },
1127        ee = "show",
1128        ie = {
1129            HIDE: "hide" + Kt,
1130            HIDDEN: "hidden" + Kt,
1131            SHOW: "show" + Kt,
1132            SHOWN: "shown" + Kt,
1133            INSERTED: "inserted" + Kt,
1134            CLICK: "click" + Kt,
1135            FOCUSIN: "focusin" + Kt,
1136            FOCUSOUT: "focusout" + Kt,
1137            MOUSEENTER: "mouseenter" + Kt,
1138            MOUSELEAVE: "mouseleave" + Kt
1139        },
1140        ne = "fade",
1141        se = "show",
1142        oe = "hover",
1143        re = "focus",
1144        ae = ((Bt = le.prototype).enable = function() {
1145            this._isEnabled = !0
1146        }, Bt.disable = function() {
1147            this._isEnabled = !1
1148        }, Bt.toggleEnabled = function() {
1149            this._isEnabled = !this._isEnabled
1150        }, Bt.toggle = function(t) {
1151            if (this._isEnabled)
1152                if (t) {
1153                    var e = this.constructor.DATA_KEY,
1154                        i = p(t.currentTarget).data(e);
1155                    i || (i = new this.constructor(t.currentTarget, this._getDelegateConfig()), p(t.currentTarget).data(e, i)), i._activeTrigger.click = !i._activeTrigger.click, i._isWithActiveTrigger() ? i._enter(null, i) : i._leave(null, i)
1156                } else {
1157                    if (p(this.getTipElement()).hasClass(se)) return void this._leave(null, this);
1158                    this._enter(null, this)
1159                }
1160        }, Bt.dispose = function() {
1161            clearTimeout(this._timeout), p.removeData(this.element, this.constructor.DATA_KEY), p(this.element).off(this.constructor.EVENT_KEY), p(this.element).closest(".modal").off("hide.bs.modal", this._hideModalHandler), this.tip && p(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null
1162        }, Bt.show = function() {
1163            var e = this;
1164            if ("none" === p(this.element).css("display")) throw new Error("Please use show on visible elements");
1165            var t = p.Event(this.constructor.Event.SHOW);
1166            if (this.isWithContent() && this._isEnabled) {
1167                p(this.element).trigger(t);
1168                var i = m.findShadowRoot(this.element),
1169                    n = p.contains(null !== i ? i : this.element.ownerDocument.documentElement, this.element);
1170                if (t.isDefaultPrevented() || !n) return;
1171                var s = this.getTipElement(),
1172                    o = m.getUID(this.constructor.NAME);
1173                s.setAttribute("id", o), this.element.setAttribute("aria-describedby", o), this.setContent(), this.config.animation && p(s).addClass(ne);
1174                var r = "function" == typeof this.config.placement ? this.config.placement.call(this, s, this.element) : this.config.placement,
1175                    a = this._getAttachment(r);
1176                this.addAttachmentClass(a);
1177                var l = this._getContainer();
1178                p(s).data(this.constructor.DATA_KEY, this), p.contains(this.element.ownerDocument.documentElement, this.tip) || p(s).appendTo(l), p(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new u(this.element, s, this._getPopperConfig(a)), p(s).addClass(se), "ontouchstart" in document.documentElement && p(document.body).children().on("mouseover", null, p.noop);
1179                var h = function() {
1180                    e.config.animation && e._fixTransition();
1181                    var t = e._hoverState;
1182                    e._hoverState = null, p(e.element).trigger(e.constructor.Event.SHOWN), "out" === t && e._leave(null, e)
1183                };
1184                if (p(this.tip).hasClass(ne)) {
1185                    var c = m.getTransitionDurationFromElement(this.tip);
1186                    p(this.tip).one(m.TRANSITION_END, h).emulateTransitionEnd(c)
1187                } else h()
1188            }
1189        }, Bt.hide = function(t) {
1190            function e() {
1191                i._hoverState !== ee && n.parentNode && n.parentNode.removeChild(n), i._cleanTipClass(), i.element.removeAttribute("aria-describedby"), p(i.element).trigger(i.constructor.Event.HIDDEN), null !== i._popper && i._popper.destroy(), t && t()
1192            }
1193            var i = this,
1194                n = this.getTipElement(),
1195                s = p.Event(this.constructor.Event.HIDE);
1196            if (p(this.element).trigger(s), !s.isDefaultPrevented()) {
1197                if (p(n).removeClass(se), "ontouchstart" in document.documentElement && p(document.body).children().off("mouseover", null, p.noop), this._activeTrigger.click = !1, this._activeTrigger[re] = !1, this._activeTrigger[oe] = !1, p(this.tip).hasClass(ne)) {
1198                    var o = m.getTransitionDurationFromElement(n);
1199                    p(n).one(m.TRANSITION_END, e).emulateTransitionEnd(o)
1200                } else e();
1201                this._hoverState = ""
1202            }
1203        }, Bt.update = function() {
1204            null !== this._popper && this._popper.scheduleUpdate()
1205        }, Bt.isWithContent = function() {
1206            return Boolean(this.getTitle())
1207        }, Bt.addAttachmentClass = function(t) {
1208            p(this.getTipElement()).addClass(Yt + "-" + t)
1209        }, Bt.getTipElement = function() {
1210            return this.tip = this.tip || p(this.config.template)[0], this.tip
1211        }, Bt.setContent = function() {
1212            var t = this.getTipElement();
1213            this.setElementContent(p(t.querySelectorAll(".tooltip-inner")), this.getTitle()), p(t).removeClass(ne + " " + se)
1214        }, Bt.setElementContent = function(t, e) {
1215            "object" != typeof e || !e.nodeType && !e.jquery ? this.config.html ? (this.config.sanitize && (e = qt(e, this.config.whiteList, this.config.sanitizeFn)), t.html(e)) : t.text(e) : this.config.html ? p(e).parent().is(t) || t.empty().append(e) : t.text(p(e).text())
1216        }, Bt.getTitle = function() {
1217            var t = this.element.getAttribute("data-original-title");
1218            return t || ("function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title)
1219        }, Bt._getPopperConfig = function(t) {
1220            var e = this;
1221            return r({}, {
1222                placement: t,
1223                modifiers: {
1224                    offset: this._getOffset(),
1225                    flip: {
1226                        behavior: this.config.fallbackPlacement
1227                    },
1228                    arrow: {
1229                        element: ".arrow"
1230                    },
1231                    preventOverflow: {
1232                        boundariesElement: this.config.boundary
1233                    }
1234                },
1235                onCreate: function(t) {
1236                    t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t)
1237                },
1238                onUpdate: function(t) {
1239                    return e._handlePopperPlacementChange(t)
1240                }
1241            }, {}, this.config.popperConfig)
1242        }, Bt._getOffset = function() {
1243            var e = this,
1244                t = {};
1245            return "function" == typeof this.config.offset ? t.fn = function(t) {
1246                return t.offsets = r({}, t.offsets, {}, e.config.offset(t.offsets, e.element) || {}), t
1247            } : t.offset = this.config.offset, t
1248        }, Bt._getContainer = function() {
1249            return !1 === this.config.container ? document.body : m.isElement(this.config.container) ? p(this.config.container) : p(document).find(this.config.container)
1250        }, Bt._getAttachment = function(t) {
1251            return Jt[t.toUpperCase()]
1252        }, Bt._setListeners = function() {
1253            var n = this;
1254            this.config.trigger.split(" ").forEach(function(t) {
1255                if ("click" === t) p(n.element).on(n.constructor.Event.CLICK, n.config.selector, function(t) {
1256                    return n.toggle(t)
1257                });
1258                else if ("manual" !== t) {
1259                    var e = t === oe ? n.constructor.Event.MOUSEENTER : n.constructor.Event.FOCUSIN,
1260                        i = t === oe ? n.constructor.Event.MOUSELEAVE : n.constructor.Event.FOCUSOUT;
1261                    p(n.element).on(e, n.config.selector, function(t) {
1262                        return n._enter(t)
1263                    }).on(i, n.config.selector, function(t) {
1264                        return n._leave(t)
1265                    })
1266                }
1267            }), this._hideModalHandler = function() {
1268                n.element && n.hide()
1269            }, p(this.element).closest(".modal").on("hide.bs.modal", this._hideModalHandler), this.config.selector ? this.config = r({}, this.config, {
1270                trigger: "manual",
1271                selector: ""
1272            }) : this._fixTitle()
1273        }, Bt._fixTitle = function() {
1274            var t = typeof this.element.getAttribute("data-original-title");
1275            !this.element.getAttribute("title") && "string" == t || (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", ""))
1276        }, Bt._enter = function(t, e) {
1277            var i = this.constructor.DATA_KEY;
1278            (e = e || p(t.currentTarget).data(i)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), p(t.currentTarget).data(i, e)), t && (e._activeTrigger["focusin" === t.type ? re : oe] = !0), p(e.getTipElement()).hasClass(se) || e._hoverState === ee ? e._hoverState = ee : (clearTimeout(e._timeout), e._hoverState = ee, e.config.delay && e.config.delay.show ? e._timeout = setTimeout(function() {
1279                e._hoverState === ee && e.show()
1280            }, e.config.delay.show) : e.show())
1281        }, Bt._leave = function(t, e) {
1282            var i = this.constructor.DATA_KEY;
1283            (e = e || p(t.currentTarget).data(i)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), p(t.currentTarget).data(i, e)), t && (e._activeTrigger["focusout" === t.type ? re : oe] = !1), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = "out", e.config.delay && e.config.delay.hide ? e._timeout = setTimeout(function() {
1284                "out" === e._hoverState && e.hide()
1285            }, e.config.delay.hide) : e.hide())
1286        }, Bt._isWithActiveTrigger = function() {
1287            for (var t in this._activeTrigger)
1288                if (this._activeTrigger[t]) return !0;
1289            return !1
1290        }, Bt._getConfig = function(t) {
1291            var e = p(this.element).data();
1292            return Object.keys(e).forEach(function(t) {
1293                -1 !== Xt.indexOf(t) && delete e[t]
1294            }), "number" == typeof(t = r({}, this.constructor.Default, {}, e, {}, "object" == typeof t && t ? t : {})).delay && (t.delay = {
1295                show: t.delay,
1296                hide: t.delay
1297            }), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), m.typeCheckConfig(Ut, t, this.constructor.DefaultType), t.sanitize && (t.template = qt(t.template, t.whiteList, t.sanitizeFn)), t
1298        }, Bt._getDelegateConfig = function() {
1299            var t = {};
1300            if (this.config)
1301                for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]);
1302            return t
1303        }, Bt._cleanTipClass = function() {
1304            var t = p(this.getTipElement()),
1305                e = t.attr("class").match(Zt);
1306            null !== e && e.length && t.removeClass(e.join(""))
1307        }, Bt._handlePopperPlacementChange = function(t) {
1308            var e = t.instance;
1309            this.tip = e.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement))
1310        }, Bt._fixTransition = function() {
1311            var t = this.getTipElement(),
1312                e = this.config.animation;
1313            null === t.getAttribute("x-placement") && (p(t).removeClass(ne), this.config.animation = !1, this.hide(), this.show(), this.config.animation = e)
1314        }, le._jQueryInterface = function(i) {
1315            return this.each(function() {
1316                var t = p(this).data(Qt),
1317                    e = "object" == typeof i && i;
1318                if ((t || !/dispose|hide/.test(i)) && (t || (t = new le(this, e), p(this).data(Qt, t)), "string" == typeof i)) {
1319                    if (void 0 === t[i]) throw new TypeError('No method n
1319amed "' + i + '"');
1320                    t[i]()
1321                }
1322            })
1323        }, o(le, null, [{
1324            key: "VERSION",
1325            get: function() {
1326                return "4.4.1"
1327            }
1328        }, {
1329            key: "Default",
1330            get: function() {
1331                return te
1332            }
1333        }, {
1334            key: "NAME",
1335            get: function() {
1336                return Ut
1337            }
1338        }, {
1339            key: "DATA_KEY",
1340            get: function() {
1341                return Qt
1342            }
1343        }, {
1344            key: "Event",
1345            get: function() {
1346                return ie
1347            }
1348        }, {
1349            key: "EVENT_KEY",
1350            get: function() {
1351                return Kt
1352            }
1353        }, {
1354            key: "DefaultType",
1355            get: function() {
1356                return Gt
1357            }
1358        }]), le);
1359
1360    function le(t, e) {
1361        if (void 0 === u) throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");
1362        this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this.element = t, this.config = this._getConfig(e), this.tip = null, this._setListeners()
1363    }
1364    p.fn[Ut] = ae._jQueryInterface, p.fn[Ut].Constructor = ae, p.fn[Ut].noConflict = function() {
1365        return p.fn[Ut] = Vt, ae._jQueryInterface
1366    };
1367    var he = "popover",
1368        ce = "bs.popover",
1369        ue = "." + ce,
1370        de = p.fn[he],
1371        fe = "bs-popover",
1372        pe = new RegExp("(^|\\s)" + fe + "\\S+", "g"),
1373        me = r({}, ae.Default, {
1374            placement: "right",
1375            trigger: "click",
1376            content: "",
1377            template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
1378        }),
1379        ge = r({}, ae.DefaultType, {
1380            content: "(string|element|function)"
1381        }),
1382        ve = {
1383            HIDE: "hide" + ue,
1384            HIDDEN: "hidden" + ue,
1385            SHOW: "show" + ue,
1386            SHOWN: "shown" + ue,
1387            INSERTED: "inserted" + ue,
1388            CLICK: "click" + ue,
1389            FOCUSIN: "focusin" + ue,
1390            FOCUSOUT: "focusout" + ue,
1391            MOUSEENTER: "mouseenter" + ue,
1392            MOUSELEAVE: "mouseleave" + ue
1393        },
1394        _e = function(t) {
1395            function n() {
1396                return t.apply(this, arguments) || this
1397            }
1398            var e, i;
1399            i = t, (e = n).prototype = Object.create(i.prototype), (e.prototype.constructor = e).__proto__ = i;
1400            var s = n.prototype;
1401            return s.isWithContent = function() {
1402                return this.getTitle() || this._getContent()
1403            }, s.addAttachmentClass = function(t) {
1404                p(this.getTipElement()).addClass(fe + "-" + t)
1405            }, s.getTipElement = function() {
1406                return this.tip = this.tip || p(this.config.template)[0], this.tip
1407            }, s.setContent = function() {
1408                var t = p(this.getTipElement());
1409                this.setElementContent(t.find(".popover-header"), this.getTitle());
1410                var e = this._getContent();
1411                "function" == typeof e && (e = e.call(this.element)), this.setElementContent(t.find(".popover-body"), e), t.removeClass("fade show")
1412            }, s._getContent = function() {
1413                return this.element.getAttribute("data-content") || this.config.content
1414            }, s._cleanTipClass = function() {
1415                var t = p(this.getTipElement()),
1416                    e = t.attr("class").match(pe);
1417                null !== e && 0 < e.length && t.removeClass(e.join(""))
1418            }, n._jQueryInterface = function(i) {
1419                return this.each(function() {
1420                    var t = p(this).data(ce),
1421                        e = "object" == typeof i ? i : null;
1422                    if ((t || !/dispose|hide/.test(i)) && (t || (t = new n(this, e), p(this).data(ce, t)), "string" == typeof i)) {
1423                        if (void 0 === t[i]) throw new TypeError('No method n
1423amed "' + i + '"');
1424                        t[i]()
1425                    }
1426                })
1427            }, o(n, null, [{
1428                key: "VERSION",
1429                get: function() {
1430                    return "4.4.1"
1431                }
1432            }, {
1433                key: "Default",
1434                get: function() {
1435                    return me
1436                }
1437            }, {
1438                key: "NAME",
1439                get: function() {
1440                    return he
1441                }
1442            }, {
1443                key: "DATA_KEY",
1444                get: function() {
1445                    return ce
1446                }
1447            }, {
1448                key: "Event",
1449                get: function() {
1450                    return ve
1451                }
1452            }, {
1453                key: "EVENT_KEY",
1454                get: function() {
1455                    return ue
1456                }
1457            }, {
1458                key: "DefaultType",
1459                get: function() {
1460                    return ge
1461                }
1462            }]), n
1463        }(ae);
1464    p.fn[he] = _e._jQueryInterface, p.fn[he].Constructor = _e, p.fn[he].noConflict = function() {
1465        return p.fn[he] = de, _e._jQueryInterface
1466    };
1467    var ye, we = "scrollspy",
1468        be = "bs.scrollspy",
1469        Ce = "." + be,
1470        Ee = p.fn[we],
1471        xe = {
1472            offset: 10,
1473            method: "auto",
1474            target: ""
1475        },
1476        Te = {
1477            offset: "number",
1478            method: "string",
1479            target: "(string|element)"
1480        },
1481        Se = {
1482            ACTIVATE: "activate" + Ce,
1483            SCROLL: "scroll" + Ce,
1484            LOAD_DATA_API: "load" + Ce + ".data-api"
1485        },
1486        Ie = "active",
1487        Ae = ".nav, .list-group",
1488        ke = ".nav-link",
1489        De = ".list-group-item",
1490        Oe = "position",
1491        Ne = ((ye = Pe.prototype).refresh = function() {
1492            var e = this,
1493                t = this._scrollElement === this._scrollElement.window ? "offset" : Oe,
1494                s = "auto" === this._config.method ? t : this._config.method,
1495                o = s === Oe ? this._getScrollTop() : 0;
1496            this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map(function(t) {
1497                var e, i = m.getSelectorFromElement(t);
1498                if (i && (e = document.querySelector(i)), e) {
1499                    var n = e.getBoundingClientRect();
1500                    if (n.width || n.height) return [p(e)[s]().top + o, i]
1501                }
1502                return null
1503            }).filter(function(t) {
1504                return t
1505            }).sort(function(t, e) {
1506                return t[0] - e[0]
1507            }
1507).forEach(function(t) {
1508                e._offsets.push(t[0]), e._targets.push(t[1])
1509            })
1510        }, ye.dispose = function() {
1511            p.removeData(this._element, be), p(this._scrollElement).off(Ce), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null
1512        }, ye._getConfig = function(t) {
1513            if ("string" != typeof(t = r({}, xe, {}, "object" == typeof t && t ? t : {})).target) {
1514                var e = p(t.target).attr("id");
1515                e || (e = m.getUID(we), p(t.target).attr("id", e)), t.target = "#" + e
1516            }
1517            return m.typeCheckConfig(we, t, Te), t
1518        }, ye._getScrollTop = function() {
1519            return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop
1520        }, ye._getScrollHeight = function() {
1521            return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)
1522        }, ye._getOffsetHeight = function() {
1523            return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height
1524        }, ye._process = function() {
1525            var t = this._getScrollTop() + this._config.offset,
1526                e = this._getScrollHeight(),
1527                i = this._config.offset + e - this._getOffsetHeight();
1528            if (this._scrollHeight !== e && this.refresh(), i <= t) {
1529                var n = this._targets[this._targets.length - 1];
1530                this._activeTarget !== n && this._activate(n)
1531            } else {
1532                if (this._activeTarget && t < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear();
1533                for (var s = this._offsets.length; s--;) this._activeTarget !== this._targets[s] && t >= this._offsets[s] && (void 0 === this._offsets[s + 1] || t < this._offsets[s + 1]) && this._activate(this._targets[s])
1534            }
1535        }, ye._activate = function(e) {
1536            this._activeTarget = e, this._clear();
1537            var t = this._selector.split(",").map(function(t) {
1538                    return t + '[data-target="' + e + '"],' + t + '[href="' + e + '"]'
1539                }),
1540                i = p([].slice.call(document.querySelectorAll(t.join(","))));
1541            i.hasClass("dropdown-item") ? (i.closest(".dropdown").find(".dropdown-toggle").addClass(Ie), i.addClass(Ie)) : (i.addClass(Ie), i.parents(Ae).prev(ke + ", " + De).addClass(Ie), i.parents(Ae).prev(".nav-item").children(ke).addClass(Ie)), p(this._scrollElement).trigger(Se.ACTIVATE, {
1542                relatedTarget: e
1543            })
1544        }, ye._clear = function() {
1545            [].slice.call(document.querySelectorAll(this._selector)).filter(function(t) {
1546                return t.classList.contains(Ie)
1547            }
1547).forEach(function(t) {
1548                return t.classList.remove(Ie)
1549            })
1550        }, Pe._jQueryInterface = function(e) {
1551            return this.each(function() {
1552                var t = p(this).data(be);
1553                if (t || (t = new Pe(this, "object" == typeof e && e), p(this).data(be, t)), "string" == typeof e) {
1554                    if (void 0 === t[e]) throw new TypeError('No method named "' + e + '"');
1555                    t[e]()
1556                }
1557            })
1558        }, o(Pe, null, [{
1559            key: "VERSION",
1560            get: function() {
1561                return "4.4.1"
1562            }
1563        }, {
1564            key: "Default",
1565            get: function() {
1566                return xe
1567            }
1568        }]), Pe);
1569
1570    function Pe(t, e) {
1571        var i = this;
1572        this._element = t, this._scrollElement = "BODY" === t.tagName ? window : t, this._config = this._getConfig(e), this._selector = this._config.target + " " + ke + "," + this._config.target + " " + De + "," + this._config.target + " .dropdown-item", this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, p(this._scrollElement).on(Se.SCROLL, function(t) {
1573            return i._process(t)
1574        }), this.refresh(), this._process()
1575    }
1576    p(window).on(Se.LOAD_DATA_API, function() {
1577        for (var t = [].slice.call(document.querySelectorAll('[data-spy="scroll"]')), e = t.length; e--;) {
1578            var i = p(t[e]);
1579            Ne._jQueryInterface.call(i, i.data())
1580        }
1581    }), p.fn[we] = Ne._jQueryInterface, p.fn[we].Constructor = Ne, p.fn[we].noConflict = function() {
1582        return p.fn[we] = Ee, Ne._jQueryInterface
1583    };
1584    var Le, je = "bs.tab",
1585        ze = "." + je,
1586        He = p.fn.tab,
1587        Me = {
1588            HIDE: "hide" + ze,
1589            HIDDEN: "hidden" + ze,
1590            SHOW: "show" + ze,
1591            SHOWN: "shown" + ze,
1592            CLICK_DATA_API: "click" + ze + ".data-api"
1593        },
1594        Re = "active",
1595        Fe = ".active",
1596        We = "> li > .active",
1597        $e = ((Le = qe.prototype).show = function() {
1598            var i = this;
1599            if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && p(this._element).hasClass(Re) || p(this._element).hasClass("disabled"))) {
1600                var t, n, e = p(this._element).closest(".nav, .list-group")[0],
1601                    s = m.getSelectorFromElement(this._element);
1602                if (e) {
1603                    var o = "UL" === e.nodeName || "OL" === e.nodeName ? We : Fe;
1604                    n = (n = p.makeArray(p(e).find(o)))[n.length - 1]
1605                }
1606                var r = p.Event(Me.HIDE, {
1607                        relatedTarget: this._element
1608                    }),
1609                    a = p.Event(Me.SHOW, {
1610                        relatedTarget: n
1611                    });
1612                if (n && p(n).trigger(r), p(this._element).trigger(a), !a.isDefaultPrevented() && !r.isDefaultPrevented()) {
1613                    s && (t = document.querySelector(s)), this._activate(this._element, e);
1614                    var l = function() {
1615                        var t = p.Event(Me.HIDDEN, {
1616                                relatedTarget: i._element
1617                            }),
1618                            e = p.Event(Me.SHOWN, {
1619                                relatedTarget: n
1620                            });
1621                        p(n).trigger(t), p(i._element).trigger(e)
1622                    };
1623                    t ? this._activate(t, t.parentNode, l) : l()
1624                }
1625            }
1626        }, Le.dispose = function() {
1627            p.removeData(this._element, je), this._element = null
1628        }, Le._activate = function(t, e, i) {
1629            function n() {
1630                return s._transitionComplete(t, o, i)
1631            }
1632            var s = this,
1633                o = (!e || "UL" !== e.nodeName && "OL" !== e.nodeName ? p(e).children(Fe) : p(e).find(We))[0],
1634                r = i && o && p(o).hasClass("fade");
1635            if (o && r) {
1636                var a = m.getTransitionDurationFromElement(o);
1637                p(o).removeClass("show").one(m.TRANSITION_END, n).emulateTransitionEnd(a)
1638            } else n()
1639        }, Le._transitionComplete = function(t, e, i) {
1640            if (e) {
1641                p(e).removeClass(Re);
1642                var n = p(e.parentNode).find("> .dropdown-menu .active")[0];
1643                n && p(n).removeClass(Re), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !1)
1644            }
1645            if (p(t).addClass(Re), "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !0), m.reflow(t), t.classList.contains("fade") && t.classList.add("show"), t.parentNode && p(t.parentNode).hasClass("dropdown-menu")) {
1646                var s = p(t).closest(".dropdown")[0];
1647                if (s) {
1648                    var o = [].slice.call(s.querySelectorAll(".dropdown-toggle"));
1649                    p(o).addClass(Re)
1650                }
1651                t.setAttribute("aria-expanded", !0)
1652            }
1653            i && i()
1654        }, qe._jQueryInterface = function(i) {
1655            return this.each(function() {
1656                var t = p(this),
1657                    e = t.data(je);
1658                if (e || (e = new qe(this), t.data(je, e)), "string" == typeof i) {
1659                    if (void 0 === e[i]) throw new TypeError('No method n
1659amed "' + i + '"');
1660                    e[i]()
1661                }
1662            })
1663        }, o(qe, null, [{
1664            key: "VERSION",
1665            get: function() {
1666                return "4.4.1"
1667            }
1668        }]), qe);
1669
1670    function qe(t) {
1671        this._element = t
1672    }
1673    p(document).on(Me.CLICK_DATA_API, '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', function(t) {
1674        t.preventDefault(), $e._jQueryInterface.call(p(this), "show")
1675    }), p.fn.tab = $e._jQueryInterface, p.fn.tab.Constructor = $e, p.fn.tab.noConflict = function() {
1676        return p.fn.tab = He, $e._jQueryInterface
1677    };
1678    var Be, Ue = "toast",
1679        Qe = "bs.toast",
1680        Ke = "." + Qe,
1681        Ve = p.fn[Ue],
1682        Ye = {
1683            CLICK_DISMISS: "click.dismiss" + Ke,
1684            HIDE: "hide" + Ke,
1685            HIDDEN: "hidden" + Ke,
1686            SHOW: "show" + Ke,
1687            SHOWN: "shown" + Ke
1688        },
1689        Ze = "show",
1690        Xe = "showing",
1691        Ge = {
1692            animation: "boolean",
1693            autohide: "boolean",
1694            delay: "number"
1695        },
1696        Je = {
1697            animation: !0,
1698            autohide: !0,
1699            delay: 500
1700        },
1701        ti = ((Be = ei.prototype).show = function() {
1702            var t = this,
1703                e = p.Event(Ye.SHOW);
1704            if (p(this._element).trigger(e), !e.isDefaultPrevented()) {
1705                this._config.animation && this._element.classList.add("fade");
1706                var i = function() {
1707                    t._element.classList.remove(Xe), t._element.classList.add(Ze), p(t._element).trigger(Ye.SHOWN), t._config.autohide && (t._timeout = setTimeout(function() {
1708                        t.hide()
1709                    }, t._config.delay))
1710                };
1711                if (this._element.classList.remove("hide"), m.reflow(this._element), this._element.classList.add(Xe), this._config.animation) {
1712                    var n = m.getTransitionDurationFromElement(this._element);
1713                    p(this._element).one(m.TRANSITION_END, i).emulateTransitionEnd(n)
1714                } else i()
1715            }
1716        }, Be.hide = function() {
1717            if (this._element.classList.contains(Ze)) {
1718                var t = p.Event(Ye.HIDE);
1719                p(this._element).trigger(t), t.isDefaultPrevented() || this._close()
1720            }
1721        }, Be.dispose = function() {
1722            clearTimeout(this._timeout), this._timeout = null, this._element.classList.contains(Ze) && this._element.classList.remove(Ze), p(this._element).off(Ye.CLICK_DISMISS), p.removeData(this._element, Qe), this._element = null, this._config = null
1723        }, Be._getConfig = function(t) {
1724            return t = r({}, Je, {}, p(this._element).data(), {}, "object" == typeof t && t ? t : {}), m.typeCheckConfig(Ue, t, this.constructor.DefaultType), t
1725        }, Be._setListeners = function() {
1726            var t = this;
1727            p(this._element).on(Ye.CLICK_DISMISS, '[data-dismiss="toast"]', function() {
1728                return t.hide()
1729            })
1730        }, Be._close = function() {
1731            function t() {
1732                e._element.classList.add("hide"), p(e._element).trigger(Ye.HIDDEN)
1733            }
1734            var e = this;
1735            if (this._element.classList.remove(Ze), this._config.animation) {
1736                var i = m.getTransitionDurationFromElement(this._element);
1737                p(this._element).one(m.TRANSITION_END, t).emulateTransitionEnd(i)
1738            } else t()
1739        }, ei._jQueryInterface = function(i) {
1740            return this.each(function() {
1741                var t = p(this),
1742                    e = t.data(Qe);
1743                if (e || (e = new ei(this, "object" == typeof i && i), t.data(Qe, e)), "string" == typeof i) {
1744                    if (void 0 === e[i]) throw new TypeError('No method named "' + i + '"');
1745                    e[i](this)
1746                }
1747            })
1748        }, o(ei, null, [{
1749            key: "VERSION",
1750            get: function() {
1751                return "4.4.1"
1752            }
1753        }, {
1754            key: "DefaultType",
1755            get: function() {
1756                return Ge
1757            }
1758        }, {
1759            key: "Default",
1760            get: function() {
1761                return Je
1762            }
1763        }]), ei);
1764
1765    function ei(t, e) {
1766        this._element = t, this._config = this._getConfig(e), this._timeout = null, this._setListeners()
1767    }
1768    p.fn[Ue] = ti._jQueryInterface, p.fn[Ue].Constructor = ti, p.fn[Ue].noConflict = function() {
1769        return p.fn[Ue] = Ve, ti._jQueryInterface
1770    }, t.Alert = f, t.Button = A, t.Carousel = B, t.Collapse = ot, t.Dropdown = Ct, t.Modal = Mt, t.Popover = _e, t.Scrollspy = Ne, t.Tab = $e, t.Toast = ti, t.Tooltip = ae, t.Util = m, Object.defineProperty(t, "__esModule", {
1771        value: !0
1772    })
1773}),
1774function(h) {
1775    "use strict";
1776    h.ajaxChimp = {
1777        responses: {
1778            "We have sent you a confirmation email": 0,
1779            "Please enter a value": 1,
1780            "An email address must contain a single @": 2,
1781            "The domain portion of the email address is invalid (the portion after the @: )": 3,
1782            "The username portion of the email address is invalid (the portion before the @: )": 4,
1783            "This email address looks fake or invalid. Please enter a real email address": 5
1784        },
1785        translations: {
1786            en: null
1787        },
1788        init: function(t, e) {
1789            h(t).ajaxChimp(e)
1790        }
1791    }, h.fn.ajaxChimp = function(i) {
1792        return h(this).each(function(t, e) {
1793            var s = h(e),
1794                o = s.find("input[type=email]"),
1795                r = s.find("label[for=" + o.attr("id") + "]"),
1796                a = h.extend({
1797                    url: s.attr("action"),
1798                    language: "en"
1799                }, i),
1800                l = a.url.replace("/post?", "/post-json?").concat("&c=?");
1801            s.attr("novalidate", "true"), o.attr("name", "EMAIL"), s.submit(function() {
1802                var n;
1803                var i = {},
1804                    t = s.serializeArray();
1805                h.each(t, function(t, e) {
1806                    i[e.name] = e.value
1807                }), h.ajax({
1808                    url: l,
1809                    data: i,
1810                    success: function(e) {
1811                        if ("success" === e.result) n = "We have sent you a confirmation email", r.removeClass("error").addClass("valid"), o.removeClass("error").addClass("valid");
1812                        else {
1813                            o.removeClass("valid").addClass("error"), r.removeClass("valid").addClass("error");
1814                            try {
1815                                var t = e.msg.split(" - ", 2);
1816                                if (void 0 === t[1]) n = e.msg;
1817                                else {
1818                                    var i = parseInt(t[0], 10);
1819                                    n = i.toString() === t[0] ? (t[0], t[1]) : e.msg
1820                                }
1821                            } catch (t) {
1822                                n = e.msg
1823                            }
1824                        }
1825                        "en" !== a.language && void 0 !== h.ajaxChimp.responses[n] && h.ajaxChimp.translations && h.ajaxChimp.translations[a.language] && h.ajaxChimp.translations[a.language][h.ajaxChimp.responses[n]] && (n = h.ajaxChimp.translations[a.language][h.ajaxChimp.responses[n]]), r.html(n), r.show(2e3), a.callback && a.callback(e)
1826                    },
1827                    dataType: "jsonp",
1828                    error: function(t, e) {
1829                        console.log("mailchimp ajax submit error: " + e)
1830                    }
1831                });
1832                var e = "Submitting...";
1833                return "en" !== a.language && h.ajaxChimp.translations && h.ajaxChimp.translations[a.language] && h.ajaxChimp.translations[a.language].submit && (e = h.ajaxChimp.translations[a.language].submit), r.html(e).show(2e3), !1
1834            })
1835        }), this
1836    }
1837}(jQuery),
1838function(i) {
1839    "use strict";
1840    i.fn.counterUp = function(t) {
1841        var e = i.extend({
1842            time: 400,
1843            delay: 10
1844        }, t);
1845        return this.each(function() {
1846            var l = i(this),
1847                h = e;
1848            l.waypoint(function() {
1849                var t = [],
1850                    e = h.time / h.delay,
1851                    i = l.text(),
1852                    n = /[0-9]+,[0-9]+/.test(i);
1853                i = i.replace(/,/g, "");
1854                /^[0-9]+$/.test(i);
1855                for (var s = /^[0-9]+\.[0-9]+$/.test(i), o = s ? (i.split(".")[1] || []).length : 0, r = e; 1 <= r; r--) {
1856                    var a = parseInt(i / e * r);
1857                    if (s && (a = parseFloat(i / e * r).toFixed(o)), n)
1858                        for (;
1859                            /(\d+)(\d{3})/.test(a.toString());) a = a.toString().replace(/(\d+)(\d{3})/, "$1,$2");
1860                    t.unshift(a)
1861                }
1862                l.data("counterup-nums", t), l.text("0");
1863                l.data("counterup-func", function() {
1864                    l.text(l.data("counterup-nums").shift()), l.data("counterup-nums").length ? setTimeout(l.data("counterup-func"), h.delay) : (l.data("counterup-nums"), l.data("counterup-nums", null), l.data("counterup-func", null))
1865                }), setTimeout(l.data("counterup-func"), h.delay)
1866            }, {
1867                offset: "100%",
1868                triggerOnce: !0
1869            })
1870        })
1871    }
1872}(jQuery),
1873function(t) {
1874    "function" == typeof define && define.amd ? define(["jquery"], t) : t("object" == typeof exports ? require("jquery") : window.jQuery || window.Zepto)
1875}(function(c) {
1876    function t() {}
1877
1878    function u(t, e) {
1879        m.ev.on("mfp" + t + w, e)
1880    }
1881
1882    function d(t, e, i, n) {
1883        var s = document.createElement("div");
1884        return s.className = "mfp-" + t, i && (s.innerHTML = i), n ? e && e.appendChild(s) : (s = c(s), e && s.appendTo(e)), s
1885    }
1886
1887    function f(t, e) {
1888        m.ev.triggerHandler("mfp" + t, e), m.st.callbacks && (t = t.charAt(0).toLowerCase() + t.slice(1), m.st.callbacks[t] && m.st.callbacks[t].apply(m, c.isArray(e) ? e : [e]))
1889    }
1890
1891    function p(t) {
1892        return t === e && m.currTemplate.closeBtn || (m.currTemplate.closeBtn = c(m.st.closeMarkup.replace("%title%", m.st.tClose)), e = t), m.currTemplate.closeBtn
1893    }
1894
1895    function o() {
1896        c.magnificPopup.instance || ((m = new t).init(), c.magnificPopup.instance = m)
1897    }
1898    var m, n, g, s, v, e, l = "Close",
1899        h = "BeforeClose",
1900        _ = "MarkupParse",
1901        y = "Open",
1902        w = ".mfp",
1903        b = "mfp-ready",
1904        i = "mfp-removing",
1905        r = "mfp-prevent-close",
1906        a = !!window.jQuery,
1907        C = c(window);
1908    t.prototype = {
1909        constructor: t,
1910        init: function() {
1911            var t = navigator.appVersion;
1912            m.isLowIE = m.isIE8 = document.all && !document.addEventListener, m.isAndroid = /android/gi.test(t), m.isIOS = /iphone|ipad|ipod/gi.test(t), m.supportsTransition = function() {
1913                var t = document.createElement("p").style,
1914                    e = ["ms", "O", "Moz", "Webkit"];
1915                if (void 0 !== t.transition) return !0;
1916                for (; e.length;)
1917                    if (e.pop() + "Transition" in t) return !0;
1918                return !1
1919            }(), m.probablyMobile = m.isAndroid || m.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent), g = c(document), m.popupsCache = {}
1920        },
1921        open: function(t) {
1922            var e;
1923            if (!1 === t.isObj) {
1924                m.items = t.items.toArray(), m.index = 0;
1925                var i, n = t.items;
1926                for (e = 0; e < n.length; e++)
1927                    if ((i = n[e]).parsed && (i = i.el[0]), i === t.el[0]) {
1928                        m.index = e;
1929                        break
1930                    }
1931            } else m.items = c.isArray(t.items) ? t.items : [t.items], m.index = t.index || 0;
1932            if (!m.isOpen) {
1933                m.types = [], v = "", t.mainEl && t.mainEl.length ? m.ev = t.mainEl.eq(0) : m.ev = g, t.key ? (m.popupsCache[t.key] || (m.popupsCache[t.key] = {}), m.currTemplate = m.popupsCache[t.key]) : m.currTemplate = {}, m.st = c.extend(!0, {}, c.magnificPopup.defaults, t), m.fixedContentPos = "auto" === m.st.fixedContentPos ? !m.probablyMobile : m.st.fixedContentPos, m.st.modal && (m.st.closeOnContentClick = !1, m.st.closeOnBgClick = !1, m.st.showCloseBtn = !1, m.st.enableEscapeKey = !1), m.bgOverlay || (m.bgOverlay = d("bg").on("click" + w, function() {
1934                    m.close()
1935                }), m.wrap = d("wrap").attr("tabindex", -1).on("click" + w, function(t) {
1936                    m._checkIfClose(t.target) && m.close()
1937                }), m.container = d("container", m.wrap)), m.contentContainer = d("content"), m.st.preloader && (m.preloader = d("preloader", m.container, m.st.tLoading));
1938                var s = c.magnificPopup.modules;
1939                for (e = 0; e < s.length; e++) {
1940                    var o = s[e];
1941                    o = o.charAt(0).toUpperCase() + o.slice(1), m["init" + o].call(m)
1942                }
1943                f("BeforeOpen"), m.st.showCloseBtn && (m.st.closeBtnInside ? (u(_, function(t, e, i, n) {
1944                    i.close_replaceWith = p(n.type)
1945                }), v += " mfp-close-btn-in") : m.wrap.append(p())), m.st.alignTop && (v += " mfp-align-top"), m.fixedContentPos ? m.wrap.css({
1946                    overflow: m.st.overflowY,
1947                    overflowX: "hidden",
1948                    overflowY: m.st.overflowY
1949                }) : m.wrap.css({
1950                    top: C.scrollTop(),
1951                    position: "absolute"
1952                }), !1 !== m.st.fixedBgPos && ("auto" !== m.st.fixedBgPos || m.fixedContentPos) || m.bgOverlay.css({
1953                    height: g.height(),
1954                    position: "absolute"
1955                }), m.st.enableEscapeKey && g.on("keyup" + w, function(t) {
1956                    27 === t.keyCode && m.close()
1957                }), C.on("resize" + w, function() {
1958                    m.updateSize()
1959                }), m.st.closeOnContentClick || (v += " mfp-auto-cursor"), v && m.wrap.addClass(v);
1960                var r = m.wH = C.height(),
1961                    a = {};
1962                if (m.fixedContentPos && m._hasScrollBar(r)) {
1963                    var l = m._getScrollbarSize();
1964                    l && (a.marginRight = l)
1965                }
1966                m.fixedContentPos && (m.isIE7 ? c("body, html").css("overflow", "hidden") : a.overflow = "hidden");
1967                var h = m.st.mainClass;
1968                return m.isIE7 && (h += " mfp-ie7"), h && m._addClassToMFP(h), m.updateItemHTML(), f("BuildControls"), c("html").css(a), m.bgOverlay.add(m.wrap).prependTo(m.st.prependTo || c(document.body)), m._lastFocusedEl = document.activeElement, setTimeout(function() {
1969                    m.content ? (m._addClassToMFP(b), m._setFocus()) : m.bgOverlay.addClass(b), g.on("focusin" + w, m._onFocusIn)
1970                }, 16), m.isOpen = !0, m.updateSize(r), f(y), t
1971            }
1972            m.updateItemHTML()
1973        },
1974        close: function() {
1975            m.isOpen && (f(h), m.isOpen = !1, m.st.removalDelay && !m.isLowIE && m.supportsTransition ? (m._addClassToMFP(i), setTimeout(function() {
1976                m._close()
1977            }, m.st.removalDelay)) : m._close())
1978        },
1979        _close: function() {
1980            f(l);
1981            var t = i + " " + b + " ";
1982            if (m.bgOverlay.detach(), m.wrap.detach(), m.container.empty(), m.st.mainClass && (t += m.st.mainClass + " "), m._removeClassFromMFP(t), m.fixedContentPos) {
1983                var e = {
1984                    marginRight: ""
1985                };
1986                m.isIE7 ? c("body, html").css("overflow", "") : e.overflow = "", c("html").css(e)
1987            }
1988            g.off("keyup.mfp focusin" + w), m.ev.off(w), m.wrap.attr("class", "mfp-wrap").removeAttr("style"), m.bgOverlay.attr("class", "mfp-bg"), m.container.attr("class", "mfp-container"), !m.st.showCloseBtn || m.st.closeBtnInside && !0 !== m.currTemplate[m.currItem.type] || m.currTemplate.closeBtn && m.currTemplate.closeBtn.detach(), m.st.autoFocusLast && m._lastFocusedEl && c(m._lastFocusedEl).focus(), m.currItem = null, m.content = null, m.currTemplate = null, m.prevHeight = 0, f("AfterClose")
1989        },
1990        updateSize: function(t) {
1991            if (m.isIOS) {
1992                var e = document.documentElement.clientWidth / window.innerWidth,
1993                    i = window.innerHeight * e;
1994                m.wrap.css("height", i), m.wH = i
1995            } else m.wH = t || C.height();
1996            m.fixedContentPos || m.wrap.css("height", m.wH), f("Resize")
1997        },
1998        updateItemHTML: function() {
1999            var t = m.items[m.index];
2000            m.contentContainer.detach(), m.content && m.content.detach(), t.parsed || (t = m.parseEl(m.index));
2001            var e = t.type;
2002            if (f("BeforeChange", [m.currItem ? m.currItem.type : "", e]), m.currItem = t, !m.currTemplate[e]) {
2003                var i = !!m.st[e] && m.st[e].markup;
2004                f("FirstMarkupParse", i), m.currTemplate[e] = !i || c(i)
2005            }
2006            s && s !== t.type && m.container.removeClass("mfp-" + s + "-holder");
2007            var n = m["get" + e.charAt(0).toUpperCase() + e.slice(1)](t, m.currTemplate[e]);
2008            m.appendContent(n, e), t.preloaded = !0, f("Change", t), s = t.type, m.container.prepend(m.contentContainer), f("AfterChange")
2009        },
2010        appendContent: function(t, e) {
2011            (m.content = t) ? m.st.showCloseBtn && m.st.closeBtnInside && !0 === m.currTemplate[e] ? m.content.find(".mfp-close").length || m.content.append(p()) : m.content = t: m.content = "", f("BeforeAppend"), m.container.addClass("mfp-" + e + "-holder"), m.contentContainer.append(m.content)
2012        },
2013        parseEl: function(t) {
2014            var e, i = m.items[t];
2015            if ((i = i.tagName ? {
2016                    el: c(i)
2017                } : (e = i.type, {
2018                    data: i,
2019                    src: i.src
2020                })).el) {
2021                for (var n = m.types, s = 0; s < n.length; s++)
2022                    if (i.el.hasClass("mfp-" + n[s])) {
2023                        e = n[s];
2024                        break
2025                    }
2026                i.src = i.el.attr("data-mfp-src"), i.src || (i.src = i.el.attr("href"))
2027            }
2028            return i.type = e || m.st.type || "inline", i.index = t, i.parsed = !0, m.items[t] = i, f("ElementParse", i), m.items[t]
2029        },
2030        addGroup: function(e, i) {
2031            function t(t) {
2032                t.mfpEl = this, m._openClick(t, e, i)
2033            }
2034            var n = "click.magnificPopup";
2035            (i = i || {}).mainEl = e, i.items ? (i.isObj = !0, e.off(n).on(n, t)) : (i.isObj = !1, i.delegate ? e.off(n).on(n, i.delegate, t) : (i.items = e).off(n).on(n, t))
2036        },
2037        _openClick: function(t, e, i) {
2038            if ((void 0 !== i.midClick ? i.midClick : c.magnificPopup.defaults.midClick) || !(2 === t.which || t.ctrlKey || t.metaKey || t.altKey || t.shiftKey)) {
2039                var n = void 0 !== i.disableOn ? i.disableOn : c.magnificPopup.defaults.disableOn;
2040                if (n)
2041                    if (c.isFunction(n)) {
2042                        if (!n.call(m)) return !0
2043                    } else if (C.width() < n) return !0;
2044                t.type && (t.preventDefault(), m.isOpen && t.stopPropagation()), i.el = c(t.mfpEl), i.delegate && (i.items = e.find(i.delegate)), m.open(i)
2045            }
2046        },
2047        updateStatus: function(t, e) {
2048            if (m.preloader) {
2049                n !== t && m.container.removeClass("mfp-s-" + n), e || "loading" !== t || (e = m.st.tLoading);
2050                var i = {
2051                    status: t,
2052                    text: e
2053                };
2054                f("UpdateStatus", i), t = i.status, e = i.text, m.preloader.html(e), m.preloader.find("a").on("click", function(t) {
2055                    t.stopImmediatePropagation()
2056                }), m.container.addClass("mfp-s-" + t), n = t
2057            }
2058        },
2059        _checkIfClose: function(t) {
2060            if (!c(t).hasClass(r)) {
2061                var e = m.st.closeOnContentClick,
2062                    i = m.st.closeOnBgClick;
2063                if (e && i) return !0;
2064                if (!m.content || c(t).hasClass("mfp-close") || m.preloader && t === m.preloader[0]) return !0;
2065                if (t === m.content[0] || c.contains(m.content[0], t)) {
2066                    if (e) return !0
2067                } else if (i && c.contains(document, t)) return !0;
2068                return !1
2069            }
2070        },
2071        _addClassToMFP: function(t) {
2072            m.bgOverlay.addClass(t), m.wrap.addClass(t)
2073        },
2074        _removeClassFromMFP: function(t) {
2075            this.bgOverlay.removeClass(t), m.wrap.removeClass(t)
2076        },
2077        _hasScrollBar: function(t) {
2078            return (m.isIE7 ? g.height() : document.body.scrollHeight) > (t || C.height())
2079        },
2080        _setFocus: function() {
2081            (m.st.focus ? m.content.find(m.st.focus).eq(0) : m.wrap).focus()
2082        },
2083        _onFocusIn: function(t) {
2084            return t.target === m.wrap[0] || c.contains(m.wrap[0], t.target) ? void 0 : (m._setFocus(), !1)
2085        },
2086        _parseMarkup: function(s, t, e) {
2087            var o;
2088            e.data && (t = c.extend(e.data, t)), f(_, [s, t, e]), c.each(t, function(t, e) {
2089                if (void 0 === e || !1 === e) return !0;
2090                if (1 < (o = t.split("_")).length) {
2091                    var i = s.find(w + "-" + o[0]);
2092                    if (0 < i.length) {
2093                        var n = o[1];
2094                        "replaceWith" === n ? i[0] !== e[0] && i.replaceWith(e) : "img" === n ? i.is("img") ? i.attr("src", e) : i.replaceWith(c("<img>").attr("src", e).attr("class", i.attr("class"))) : i.attr(o[1], e)
2095                    }
2096                } else s.find(w + "-" + t).html(e)
2097            })
2098        },
2099        _getScrollbarSize: function() {
2100            if (void 0 === m.scrollbarSize) {
2101                var t = document.createElement("div");
2102                t.style.cssText = "width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;", document.body.appendChild(t), m.scrollbarSize = t.offsetWidth - t.clientWidth, document.body.removeChild(t)
2103            }
2104            return m.scrollbarSize
2105        }
2106    }, c.magnificPopup = {
2107        instance: null,
2108        proto: t.prototype,
2109        modules: [],
2110        open: function(t, e) {
2111            return o(), (t = t ? c.extend(!0, {}, t) : {}).isObj = !0, t.index = e || 0, this.instance.open(t)
2112        },
2113        close: function() {
2114            return c.magnificPopup.instance && c.magnificPopup.instance.close()
2115        },
2116        registerModule: function(t, e) {
2117            e.options && (c.magnificPopup.defaults[t] = e.options), c.extend(this.proto, e.proto), this.modules.push(t)
2118        },
2119        defaults: {
2120            disableOn: 0,
2121            key: null,
2122            midClick: !1,
2123            mainClass: "",
2124            preloader: !0,
2125            focus: "",
2126            closeOnContentClick: !1,
2127            closeOnBgClick: !0,
2128            closeBtnInside: !0,
2129            showCloseBtn: !0,
2130            enableEscapeKey: !0,
2131            modal: !1,
2132            alignTop: !1,
2133            removalDelay: 0,
2134            prependTo: null,
2135            fixedContentPos: "auto",
2136            fixedBgPos: "auto",
2137            overflowY: "auto",
2138            closeMarkup: '<button title="%title%" type="button" class="mfp-close">&#215;</button>',
2139            tClose: "Close (Esc)",
2140            tLoading: "Loading...",
2141            autoFocusLast: !0
2142        }
2143    }, c.fn.magnificPopup = function(t) {
2144        o();
2145        var e = c(this);
2146        if ("string" == typeof t)
2147            if ("open" === t) {
2148                var i, n = a ? e.data("magnificPopup") : e[0].magnificPopup,
2149                    s = parseInt(arguments[1], 10) || 0;
2150                i = n.items ? n.items[s] : (i = e, n.delegate && (i = i.find(n.delegate)), i.eq(s)), m._openClick({
2151                    mfpEl: i
2152                }, e, n)
2153            } else m.isOpen && m[t].apply(m, Array.prototype.slice.call(arguments, 1));
2154        else t = c.extend(!0, {}, t), a ? e.data("magnificPopup", t) : e[0].magnificPopup = t, m.addGroup(e, t);
2155        return e
2156    };
2157
2158    function E() {
2159        S && (T.after(S.addClass(x)).detach(), S = null)
2160    }
2161    var x, T, S, I = "inline";
2162    c.magnificPopup.registerModule(I, {
2163        options: {
2164            hiddenClass: "hide",
2165            markup: "",
2166            tNotFound: "Content not found"
2167        },
2168        proto: {
2169            initInline: function() {
2170                m.types.push(I), u(l + "." + I, function() {
2171                    E()
2172                })
2173            },
2174            getInline: function(t, e) {
2175                if (E(), t.src) {
2176                    var i = m.st.inline,
2177                        n = c(t.src);
2178                    if (n.length) {
2179                        var s = n[0].parentNode;
2180                        s && s.tagName && (T || (x = i.hiddenClass, T = d(x), x = "mfp-" + x), S = n.after(T).detach().removeClass(x)), m.updateStatus("ready")
2181                    } else m.updateStatus("error", i.tNotFound), n = c("<div>");
2182                    return t.inlineElement = n
2183                }
2184                return m.updateStatus("ready"), m._parseMarkup(e, {}, t), e
2185            }
2186        }
2187    });
2188
2189    function A() {
2190        D && c(document.body).removeClass(D)
2191    }
2192
2193    function k() {
2194        A(), m.req && m.req.abort()
2195    }
2196    var D, O = "ajax";
2197    c.magnificPopup.registerModule(O, {
2198        options: {
2199            settings: null,
2200            cursor: "mfp-ajax-cur",
2201            tError: '<a href="%url%">The content</a> could not be loaded.'
2202        },
2203        proto: {
2204            initAjax: function() {
2205                m.types.push(O), D = m.st.ajax.cursor, u(l + "." + O, k), u("BeforeChange." + O, k)
2206            },
2207            getAjax: function(s) {
2208                D && c(document.body).addClass(D), m.updateStatus("loading");
2209                var t = c.extend({
2210                    url: s.src,
2211                    success: function(t, e, i) {
2212                        var n = {
2213                            data: t,
2214                            xhr: i
2215                        };
2216                        f("ParseAjax", n), m.appendContent(c(n.data), O), s.finished = !0, A(), m._setFocus(), setTimeout(function() {
2217                            m.wrap.addClass(b)
2218                        }, 16), m.updateStatus("ready"), f("AjaxContentAdded")
2219                    },
2220                    error: function() {
2221                        A(), s.finished = s.loadError = !0, m.updateStatus("error", m.st.ajax.tError.replace("%url%", s.src))
2222                    }
2223                }, m.st.ajax.settings);
2224                return m.req = c.ajax(t), ""
2225            }
2226        }
2227    });
2228    var N;
2229    c.magnificPopup.registerModule("image", {
2230        options: {
2231            markup: '<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',
2232            cursor: "mfp-zoom-out-cur",
2233            titleSrc: "title",
2234            verticalFit: !0,
2235            tError: '<a href="%url%">The image</a> could not be loaded.'
2236        },
2237        proto: {
2238            initImage: function() {
2239                var t = m.st.image,
2240                    e = ".image";
2241                m.types.push("image"), u(y + e, function() {
2242                    "image" === m.currItem.type && t.cursor && c(document.body).addClass(t.cursor)
2243                }), u(l + e, function() {
2244                    t.cursor && c(document.body).removeClass(t.cursor), C.off("resize" + w)
2245                }), u("Resize" + e, m.resizeImage), m.isLowIE && u("AfterChange", m.resizeImage)
2246            },
2247            resizeImage: function() {
2248                var t = m.currItem;
2249                if (t && t.img && m.st.image.verticalFit) {
2250                    var e = 0;
2251                    m.isLowIE && (e = parseInt(t.img.css("padding-top"), 10) + parseInt(t.img.css("padding-bottom"), 10)), t.img.css("max-height", m.wH - e)
2252                }
2253            },
2254            _onImageHasSize: function(t) {
2255                t.img && (t.hasSize = !0, N && clearInterval(N), t.isCheckingImgSize = !1, f("ImageHasSize", t), t.imgHidden && (m.content && m.content.removeClass("mfp-loading"), t.imgHidden = !1))
2256            },
2257            findImageSize: function(e) {
2258                var i = 0,
2259                    n = e.img[0],
2260                    s = function(t) {
2261                        N && clearInterval(N), N = setInterval(function() {
2262                            return 0 < n.naturalWidth ? void m._onImageHasSize(e) : (200 < i && clearInterval(N), void(3 === ++i ? s(10) : 40 === i ? s(50) : 100 === i && s(500)))
2263                        }, t)
2264                    };
2265                s(1)
2266            },
2267            getImage: function(t, e) {
2268                var i = 0,
2269                    n = function() {
2270                        t && (t.img[0].complete ? (t.img.off(".mfploader"), t === m.currItem && (m._onImageHasSize(t), m.updateStatus("ready")), t.hasSize = !0, t.loaded = !0, f("ImageLoadComplete")) : ++i < 200 ? setTimeout(n, 100) : s())
2271                    },
2272                    s = function() {
2273                        t && (t.img.off(".mfploader"), t === m.currItem && (m._onImageHasSize(t), m.updateStatus("error", o.tError.replace("%url%", t.src))), t.hasSize = !0, t.loaded = !0, t.loadError = !0)
2274                    },
2275                    o = m.st.image,
2276                    r = e.find(".mfp-img");
2277                if (r.length) {
2278                    var a = document.createElement("img");
2279                    a.className = "mfp-img", t.el && t.el.find("img").length && (a.alt = t.el.find("img").attr("alt")), t.img = c(a).on("load.mfploader", n).on("error.mfploader", s), a.src = t.src, r.is("img") && (t.img = t.img.clone()), 0 < (a = t.img[0]).naturalWidth ? t.hasSize = !0 : a.width || (t.hasSize = !1)
2280                }
2281                return m._parseMarkup(e, {
2282                    title: function(t) {
2283                        if (t.data && void 0 !== t.data.title) return t.data.title;
2284                        var e = m.st.image.titleSrc;
2285                        if (e) {
2286                            if (c.isFunction(e)) return e.call(m, t);
2287                            if (t.el) return t.el.attr(e) || ""
2288                        }
2289                        return ""
2290                    }(t),
2291                    img_replaceWith: t.img
2292                }, t), m.resizeImage(), t.hasSize ? (N && clearInterval(N), t.loadError ? (e.addClass("mfp-loading"), m.updateStatus("error", o.tError.replace("%url%", t.src))) : (e.removeClass("mfp-loading"), m.updateStatus("ready"))) : (m.updateStatus("loading"), t.loading = !0, t.hasSize || (t.imgHidden = !0, e.addClass("mfp-loading"), m.findImageSize(t))), e
2293            }
2294        }
2295    });
2296    var P;
2297    c.magnificPopup.registerModule("zoom", {
2298        options: {
2299            enabled: !1,
2300            easing: "ease-in-out",
2301            duration: 300,
2302            opener: function(t) {
2303                return t.is("img") ? t : t.find("img")
2304            }
2305        },
2306        proto: {
2307            initZoom: function() {
2308                var t, o = m.st.zoom,
2309                    e = ".zoom";
2310                if (o.enabled && m.supportsTransition) {
2311                    function i(t) {
2312                        var e = t.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),
2313                            i = "all " + o.duration / 1e3 + "s " + o.easing,
2314                            n = {
2315                                position: "fixed",
2316                                zIndex: 9999,
2317                                left: 0,
2318                                top: 0,
2319                                "-webkit-backface-visibility": "hidden"
2320                            },
2321                            s = "transition";
2322                        return n["-webkit-" + s] = n["-moz-" + s] = n["-o-" + s] = n[s] = i, e.css(n), e
2323                    }
2324
2325                    function n() {
2326                        m.content.css("visibility", "visible")
2327                    }
2328                    var s, r, a = o.duration;
2329                    u("BuildControls" + e, function() {
2330                        if (m._allowZoom()) {
2331                            if (clearTimeout(s), m.content.css("visibility", "hidden"), !(t = m._getItemToZoom())) return void n();
2332                            (r = i(t)).css(m._getOffset()), m.wrap.append(r), s = setTimeout(function() {
2333                                r.css(m._getOffset(!0)), s = setTimeout(function() {
2334                                    n(), setTimeout(function() {
2335                                        r.remove(), t = r = null, f("ZoomAnimationEnded")
2336                                    }, 16)
2337                                }, a)
2338                            }, 16)
2339                        }
2340                    }), u(h + e, function() {
2341                        if (m._allowZoom()) {
2342                            if (clearTimeout(s), m.st.removalDelay = a, !t) {
2343                                if (!(t = m._getItemToZoom())) return;
2344                                r = i(t)
2345                            }
2346                            r.css(m._getOffset(!0)), m.wrap.append(r), m.content.css("visibility", "hidden"), setTimeout(function() {
2347                                r.css(m._getOffset())
2348                            }, 16)
2349                        }
2350                    }), u(l + e, function() {
2351                        m._allowZoom() && (n(), r && r.remove(), t = null)
2352                    })
2353                }
2354            },
2355            _allowZoom: function() {
2356                return "image" === m.currItem.type
2357            },
2358            _getItemToZoom: function() {
2359                return !!m.currItem.hasSize && m.currItem.img
2360            },
2361            _getOffset: function(t) {
2362                var e, i = (e = t ? m.currItem.img : m.st.zoom.opener(m.currItem.el || m.currItem)).offset(),
2363                    n = parseInt(e.css("padding-top"), 10),
2364                    s = parseInt(e.css("padding-bottom"), 10);
2365                i.top -= c(window).scrollTop() - n;
2366                var o = {
2367                    width: e.width(),
2368                    height: (a ? e.innerHeight() : e[0].offsetHeight) - s - n
2369                };
2370                return void 0 === P && (P = void 0 !== document.createElement("p").style.MozTransform), P ? o["-moz-transform"] = o.transform = "translate(" + i.left + "px," + i.top + "px)" : (o.left = i.left, o.top = i.top), o
2371            }
2372        }
2373    });
2374
2375    function L(t) {
2376        if (m.currTemplate[j]) {
2377            var e = m.currTemplate[j].find("iframe");
2378            e.length && (t || (e[0].src = "//about:blank"), m.isIE8 && e.css("display", t ? "block" : "none"))
2379        }
2380    }
2381    var j = "iframe";
2382    c.magnificPopup.registerModule(j, {
2383        options: {
2384            markup: '<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',
2385            srcAction: "iframe_src",
2386            patterns: {
2387                youtube: {
2388                    index: "youtube.com",
2389                    id: "v=",
2390                    src: "//www.youtube.com/embed/%id%?autoplay=1"
2391                },
2392                vimeo: {
2393                    index: "vimeo.com/",
2394                    id: "/",
2395                    src: "//player.vimeo.com/video/%id%?autoplay=1"
2396                },
2397                gmaps: {
2398                    index: "//maps.google.",
2399                    src: "%id%&output=embed"
2400                }
2401            }
2402        },
2403        proto: {
2404            initIframe: function() {
2405                m.types.push(j), u("BeforeChange", function(t, e, i) {
2406                    e !== i && (e === j ? L() : i === j && L(!0))
2407                }), u(l + "." + j, function() {
2408                    L()
2409                })
2410            },
2411            getIframe: function(t, e) {
2412                var i = t.src,
2413                    n = m.st.iframe;
2414                c.each(n.patterns, function() {
2415                    return -1 < i.indexOf(this.index) ? (this.id && (i = "string" == typeof this.id ? i.substr(i.lastIndexOf(this.id) + this.id.length, i.length) : this.id.call(this, i)), i = this.src.replace("%id%", i), !1) : void 0
2416                });
2417                var s = {};
2418                return n.srcAction && (s[n.srcAction] = i), m._parseMarkup(e, s, t), m.updateStatus("ready"), e
2419            }
2420        }
2421    });
2422
2423    function z(t) {
2424        var e = m.items.length;
2425        return e - 1 < t ? t - e : t < 0 ? e + t : t
2426    }
2427
2428    function H(t, e, i) {
2429        return t.replace(/%curr%/gi, e + 1).replace(/%total%/gi, i)
2430    }
2431    c.magnificPopup.registerModule("gallery", {
2432        options: {
2433            enabled: !1,
2434            arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
2435            preload: [0, 2],
2436            navigateByImgClick: !0,
2437            arrows: !0,
2438            tPrev: "Previous (Left arrow key)",
2439            tNext: "Next (Right arrow key)",
2440            tCounter: "%curr% of %total%"
2441        },
2442        proto: {
2443            initGallery: function() {
2444                var o = m.st.gallery,
2445                    t = ".mfp-gallery";
2446                return m.direction = !0, !(!o || !o.enabled) && (v += " mfp-gallery", u(y + t, function() {
2447                    o.navigateByImgClick && m.wrap.on("click" + t, ".mfp-img", function() {
2448                        return 1 < m.items.length ? (m.next(), !1) : void 0
2449                    }), g.on("keydown" + t, function(t) {
2450                        37 === t.keyCode ? m.prev() : 39 === t.keyCode && m.next()
2451                    })
2452                }), u("UpdateStatus" + t, function(t, e) {
2453                    e.text && (e.text = H(e.text, m.currItem.index, m.items.length))
2454                }), u(_ + t, function(t, e, i, n) {
2455                    var s = m.items.length;
2456                    i.counter = 1 < s ? H(o.tCounter, n.index, s) : ""
2457                }), u("BuildControls" + t, function() {
2458                    if (1 < m.items.length && o.arrows && !m.arrowLeft) {
2459                        var t = o.arrowMarkup,
2460                            e = m.arrowLeft = c(t.replace(/%title%/gi, o.tPrev).replace(/%dir%/gi, "left")).addClass(r),
2461                            i = m.arrowRight = c(t.replace(/%title%/gi, o.tNext).replace(/%dir%/gi, "right")).addClass(r);
2462                        e.click(function() {
2463                            m.prev()
2464                        }), i.click(function() {
2465                            m.next()
2466                        }), m.container.append(e.add(i))
2467                    }
2468                }), u("Change" + t, function() {
2469                    m._preloadTimeout && clearTimeout(m._preloadTimeout), m._preloadTimeout = setTimeout(function() {
2470                        m.preloadNearbyImages(), m._preloadTimeout = null
2471                    }, 16)
2472                }), void u(l + t, function() {
2473                    g.off(t), m.wrap.off("click" + t), m.arrowRight = m.arrowLeft = null
2474                }))
2475            },
2476            next: function() {
2477                m.direction = !0, m.index = z(m.index + 1), m.updateItemHTML()
2478            },
2479            prev: function() {
2480                m.direction = !1, m.index = z(m.index - 1), m.updateItemHTML()
2481            },
2482            goTo: function(t) {
2483                m.direction = t >= m.index, m.index = t, m.updateItemHTML()
2484            },
2485            preloadNearbyImages: function() {
2486                var t, e = m.st.gallery.preload,
2487                    i = Math.min(e[0], m.items.length),
2488                    n = Math.min(e[1], m.items.length);
2489                for (t = 1; t <= (m.direction ? n : i); t++) m._preloadItem(m.index + t);
2490                for (t = 1; t <= (m.direction ? i : n); t++) m._preloadItem(m.index - t)
2491            },
2492            _preloadItem: function(t) {
2493                if (t = z(t), !m.items[t].preloaded) {
2494                    var e = m.items[t];
2495                    e.parsed || (e = m.parseEl(t)), f("LazyLoad", e), "image" === e.type && (e.img = c('<img class="mfp-img" />').on("load.mfploader", function() {
2496                        e.hasSize = !0
2497                    }).on("error.mfploader", function() {
2498                        e.hasSize = !0, e.loadError = !0, f("LazyLoadError", e)
2499                    }).attr("src", e.src)), e.preloaded = !0
2500                }
2501            }
2502        }
2503    });
2504    var M = "retina";
2505    c.magnificPopup.registerModule(M, {
2506        options: {
2507            replaceSrc: function(t) {
2508                return t.src.replace(/\.\w+$/, function(t) {
2509                    return "@2x" + t
2510                })
2511            },
2512            ratio: 1
2513        },
2514        proto: {
2515            initRetina: function() {
2516                if (1 < window.devicePixelRatio) {
2517                    var i = m.st.retina,
2518                        n = i.ratio;
2519                    1 < (n = isNaN(n) ? n() : n) && (u("ImageHasSize." + M, function(t, e) {
2520                        e.img.css({
2521                            "max-width": e.img[0].naturalWidth / n,
2522                            width: "100%"
2523                        })
2524                    }), u("ElementParse." + M, function(t, e) {
2525                        e.src = i.replaceSrc(e, n)
2526                    }))
2527                }
2528            }
2529        }
2530    }), o()
2531}),
2532function(t) {
2533    "function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof exports ? module.exports = t : t(jQuery)
2534}(function(c) {
2535    var u, d, t = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"],
2536        e = "onwheel" in window.document || 9 <= window.document.documentMode ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"],
2537        f = Array.prototype.slice;
2538    if (c.event.fixHooks)
2539        for (var i = t.length; i;) c.event.fixHooks[t[--i]] = c.event.mouseHooks;
2540    var p = c.event.special.mousewheel = {
2541        version: "3.1.12",
2542        setup: function() {
2543            if (this.addEventListener)
2544                for (var t = e.length; t;) this.addEventListener(e[--t], n, !1);
2545            else this.onmousewheel = n;
2546            c.data(this, "mousewheel-line-height", p.getLineHeight(this)), c.data(this, "mousewheel-page-height", p.getPageHeight(this))
2547        },
2548        teardown: function() {
2549            if (this.removeEventListener)
2550                for (var t = e.length; t;) this.removeEventListener(e[--t], n, !1);
2551            else this.onmousewheel = null;
2552            c.removeData(this, "mousewheel-line-height"), c.removeData(this, "mousewheel-page-height")
2553        },
2554        getLineHeight: function(t) {
2555            var e = c(t),
2556                i = e["offsetParent" in c.fn ? "offsetParent" : "parent"]();
2557            return i.length || (i = c("body")), parseInt(i.css("fontSize"), 10) || parseInt(e.css("fontSize"), 10) || 16
2558        },
2559        getPageHeight: function(t) {
2560            return c(t).height()
2561        },
2562        settings: {
2563            adjustOldDeltas: !0,
2564            normalizeOffset: !0
2565        }
2566    };
2567
2568    function n(t) {
2569        var e, i = t || window.event,
2570            n = f.call(arguments, 1),
2571            s = 0,
2572            o = 0,
2573            r = 0;
2574        if ((t = c.event.fix(i)).type = "mousewheel", "detail" in i && (r = -1 * i.detail), "wheelDelta" in i && (r = i.wheelDelta), "wheelDeltaY" in i && (r = i.wheelDeltaY), "wheelDeltaX" in i && (o = -1 * i.wheelDeltaX), "axis" in i && i.axis === i.HORIZONTAL_AXIS && (o = -1 * r, r = 0), s = 0 === r ? o : r, "deltaY" in i && (s = r = -1 * i.deltaY), "deltaX" in i && (o = i.deltaX, 0 === r && (s = -1 * o)), 0 !== r || 0 !== o) {
2575            if (1 === i.deltaMode) {
2576                var a = c.data(this, "mousewheel-line-height");
2577                s *= a, r *= a, o *= a
2578            } else if (2 === i.deltaMode) {
2579                var l = c.data(this, "mousewheel-page-height");
2580                s *= l, r *= l, o *= l
2581            }
2582            if (e = Math.max(Math.abs(r), Math.abs(o)), (!d || e < d) && g(i, d = e) && (d /= 40), g(i, e) && (s /= 40, o /= 40, r /= 40), s = Math[1 <= s ? "floor" : "ceil"](s / d), o = Math[1 <= o ? "floor" : "ceil"](o / d), r = Math[1 <= r ? "floor" : "ceil"](r / d), p.settings.normalizeOffset && this.getBoundingClientRect) {
2583                var h = this.getBoundingClientRect();
2584                t.offsetX = t.clientX - h.left, t.offsetY = t.clientY - h.top
2585            }
2586            return t.deltaX = o, t.deltaY = r, t.deltaFactor = d, t.deltaMode = 0, n.unshift(t, s, o, r), u && window.clearTimeout(u), u = window.setTimeout(m, 200), (c.event.dispatch || c.event.handle).apply(this, n)
2587        }
2588    }
2589
2590    function m() {
2591        d = null
2592    }
2593
2594    function g(t, e) {
2595        return p.settings.adjustOldDeltas && "mousewheel" === t.type && e % 120 == 0
2596    }
2597    c.fn.extend({
2598        mousewheel: function(t) {
2599            return t ? this.on("mousewheel", t) : this.trigger("mousewheel")
2600        },
2601        unmousewheel: function(t) {
2602            return this.off("mousewheel", t)
2603        }
2604    })
2605}),
2606function(t) {
2607    "function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof module && module.exports ? module.exports = t(require("jquery")) : t(jQuery)
2608}(function(c) {
2609    var i;
2610    c.extend(c.fn, {
2611        validate: function(t) {
2612            if (this.length) {
2613                var n = c.data(this[0], "validator");
2614                return n || (this.attr("novalidate", "novalidate"), n = new c.validator(t, this[0]), c.data(this[0], "validator", n), n.settings.onsubmit && (this.on("click.validate", ":submit", function(t) {
2615                    n.submitButton = t.currentTarget, c(this).hasClass("cancel") && (n.cancelSubmit = !0), void 0 !== c(this).attr("formnovalidate") && (n.cancelSubmit = !0)
2616                }), this.on("submit.validate", function(i) {
2617                    function t() {
2618                        var t, e;
2619                        return n.submitButton && (n.settings.submitHandler || n.formSubmitted) && (t = c("<input type='hidden'/>").attr("name", n.submitButton.name).val(c(n.submitButton).val()).appendTo(n.currentForm)), !(n.settings.submitHandler && !n.settings.debug) || (e = n.settings.submitHandler.call(n, n.currentForm, i), t && t.remove(), void 0 !== e && e)
2620                    }
2621                    return n.settings.debug && i.preventDefault(), n.cancelSubmit ? (n.cancelSubmit = !1, t()) : n.form() ? n.pe
2621ndingRequest ? !(n.formSubmitted = !0) : t() : (n.focusInvalid(), !1)
2622                })), n)
2623            }
2624            t && t.debug && window.console && console.warn("Nothing selected, can't validate, returning nothing.")
2625        },
2626        valid: function() {
2627            var t, e, i;
2628            return c(this[0]).is("form") ? t = this.validate().form() : (i = [], t = !0, e = c(this[0].form).validate(), this.each(function() {
2629                (t = e.element(this) && t) || (i = i.concat(e.errorList))
2630            }), e.errorList = i), t
2631        },
2632        rules: function(t, e) {
2633            var i, n, s, o, r, a, l = this[0],
2634                h = void 0 !== this.attr("contenteditable") && "false" !== this.attr("contenteditable");
2635            if (null != l && (!l.form && h && (l.form = this.closest("form")[0], l.name = this.attr("name")), null != l.form)) {
2636                if (t) switch (i = c.data(l.form, "validator").settings, n = i.rules, s = c.validator.staticRules(l), t) {
2637                    case "add":
2638                        c.extend(s, c.validator.normalizeRule(e)), delete s.messages, n[l.name] = s, e.messages && (i.messages[l.name] = c.extend(i.messages[l.name], e.messages));
2639                        break;
2640                    case "remove":
2641                        return e ? (a = {}, c.each(e.split(/\s/), function(t, e) {
2642                            a[e] = s[e], delete s[e]
2643                        }), a) : (delete n[l.name], s)
2644                }
2645                return (o = c.validator.normalizeRules(c.extend({}, c.validator.classRules(l), c.validator.attributeRules(l), c.validator.dataRules(l), c.validator.staticRules(l)), l)).required && (r = o.required, delete o.required, o = c.extend({
2646                    required: r
2647                }, o)), o.remote && (r = o.remote, delete o.remote, o = c.extend(o, {
2648                    remote: r
2649                })), o
2650            }
2651        }
2652    }), c.extend(c.expr.pseudos || c.expr[":"], {
2653        blank: function(t) {
2654            return !c.trim("" + c(t).val())
2655        },
2656        filled: function(t) {
2657            var e = c(t).val();
2658            return null !== e && !!c.trim("" + e)
2659        },
2660        unchecked: function(t) {
2661            return !c(t).prop("checked")
2662        }
2663    }), c.validator = function(t, e) {
2664        this.settings = c.extend(!0, {}, c.validator.defaults, t), this.currentForm = e, this.init()
2665    }, c.validator.format = function(i, t) {
2666        return 1 === arguments.length ? function() {
2667            var t = c.makeArray(arguments);
2668            return t.unshift(i), c.validator.format.apply(this, t)
2669        } : (void 0 === t || (2 < arguments.length && t.constructor !== Array && (t = c.makeArray(arguments).slice(1)), t.constructor !== Array && (t = [t]), c.each(t, function(t, e) {
2670            i = i.replace(new RegExp("\\{" + t + "\\}", "g"), function() {
2671                return e
2672            })
2673        })), i)
2674    }, c.extend(c.validator, {
2675        defaults: {
2676            messages: {},
2677            groups: {},
2678            rules: {},
2679            errorClass: "error",
2680            pendingClass: "pending",
2681            validClass: "valid",
2682            errorElement: "label",
2683            focusCleanup: !1,
2684            focusInvalid: !0,
2685            errorContainer: c([]),
2686            errorLabelContainer: c([]),
2687            onsubmit: !0,
2688            ignore: ":hidden",
2689            ignoreTitle: !1,
2690            onfocusin: function(t) {
2691                this.lastActive = t, this.settings.focusCleanup && (this.settings.unhighlight && this.settings.unhighlight.call(this, t, this.settings.errorClass, this.settings.validClass), this.hideThese(this.errorsFor(t)))
2692            },
2693            onfocusout: function(t) {
2694                this.checkable(t) || !(t.name in this.submitted) && this.optional(t) || this.element(t)
2695            },
2696            onkeyup: function(t, e) {
2697                9 === e.which && "" === this.elementValue(t) || -1 !== c.inArray(e.keyCode, [16, 17, 18, 20, 35, 36, 37, 38, 39, 40, 45, 144, 225]) || (t.name in this.submitted || t.name in this.invalid) && this.element
vendor: 13,623 bytes, lines 2697-2918
2697(t)
2698            },
2699            onclick: function(t) {
2700                t.name in this.submitted ? this.element(t) : t.parentNode.name in this.submitted && this.element(t.parentNode)
2701            },
2702            highlight: function(t, e, i) {
2703                "radio" === t.type ? this.findByName(t.name).addClass(e).removeClass(i) : c(t).addClass(e).removeClass(i)
2704            },
2705            unhighlight: function(t, e, i) {
2706                "radio" === t.type ? this.findByName(t.name).removeClass(e).addClass(i) : c(t).removeClass(e).addClass(i)
2707            }
2708        },
2709        setDefaults: function(t) {
2710            c.extend(c.validator.defaults, t)
2711        },
2712        messages: {
2713            required: "This field is required.",
2714            remote: "Please fix this field.",
2715            email: "Please enter a valid email address.",
2716            url: "Please enter a valid URL.",
2717            date: "Please enter a valid date.",
2718            dateISO: "Please enter a valid date (ISO).",
2719            number: "Please enter a valid number.",
2720            digits: "Please enter only digits.",
2721            equalTo: "Please enter the same value again.",
2722            maxlength: c.validator.format("Please enter no more than {0} characters."),
2723            minlength: c.validator.format("Please enter at least {0} characters."),
2724            rangelength: c.validator.format("Please enter a value between {0} and {1} characters long."),
2725            range: c.validator.format("Please enter a value between {0} and {1}."),
2726            max: c.validator.format("Please enter a value less than or equal to {0}."),
2727            min: c.validator.format("Please enter a value greater than or equal to {0}."),
2728            step: c.validator.format("Please enter a multiple of {0}.")
2729        },
2730        autoCreateRanges: !1,
2731        prototype: {
2732            init: function() {
2733                function t(t) {
2734                    var e = void 0 !== c(this).attr("contenteditable") && "false" !== c(this).attr("contenteditable");
2735                    if (!this.form && e && (this.form = c(this).closest("form")[0], this.name = c(this).attr("name")), o === this.form) {
2736                        var i = c.data(this.form, "validator"),
2737                            n = "on" + t.type.replace(/^validate/, ""),
2738                            s = i.settings;
2739                        s[n] && !c(this).is(s.ignore) && s[n].call(i, this, t)
2740                    }
2741                }
2742                this.labelContainer = c(this.settings.errorLabelContainer), this.errorContext = this.labelContainer.length && this.labelContainer || c(this.currentForm), this.containers = c(this.settings.errorContainer).add(this.settings.errorLabelContainer), this.submitted = {}, this.valueCache = {}, this.pendingRequest = 0, this.pending = {}, this.invalid = {}, this.reset();
2743                var i, o = this.currentForm,
2744                    n = this.groups = {};
2745                c.each(this.settings.groups, function(i, t) {
2746                    "string" == typeof t && (t = t.split(/\s/)), c.each(t, function(t, e) {
2747                        n[e] = i
2748                    })
2749                }), i = this.settings.rules, c.each(i, function(t, e) {
2750                    i[t] = c.validator.normalizeRule(e)
2751                }), c(this.currentForm).on("focusin.validate focusout.validate keyup.validate", ":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable], [type='button']", t).on("click.validate", "select, option, [type='radio'], [type='checkbox']", t), this.settings.invalidHandler && c(this.currentForm).on("invalid-form.validate", this.settings.invalidHandler)
2752            },
2753            form: function() {
2754                return this.checkForm(), c.extend(this.submitted, this.errorMap), this.invalid = c.extend({}, this.errorMap), this.valid() || c(this.currentForm).triggerHandler("invalid-form", [this]), this.showErrors(), this.valid()
2755            },
2756            checkForm: function() {
2757                this.prepareForm();
2758                for (var t = 0, e = this.currentElements = this.elements(); e[t]; t++) this.check(e[t]);
2759                return this.valid()
2760            },
2761            element: function(t) {
2762                var e, i, n = this.clean(t),
2763                    s = this.validationTargetFor(n),
2764                    o = this,
2765                    r = !0;
2766                return void 0 === s ? delete this.invalid[n.name] : (this.prepareElement(s), this.currentElements = c(s), (i = this.groups[s.name]) && c.each(this.groups, function(t, e) {
2767                    e === i && t !== s.name && ((n = o.validationTargetFor(o.clean(o.findByName(t)))) && n.name in o.invalid && (o.currentElements.push(n), r = o.check(n) && r))
2768                }), e = !1 !== this.check(s), r = r && e, this.invalid[s.name] = !e, this.numberOfInvalids() || (this.toHide = this.toHide.add(this.containers)), this.showErrors(), c(t).attr("aria-invalid", !e)), r
2769            },
2770            showErrors: function(e) {
2771                if (e) {
2772                    var i = this;
2773                    c.extend(this.errorMap, e), this.errorList = c.map(this.errorMap, function(t, e) {
2774                        return {
2775                            message: t,
2776                            element: i.findByName(e)[0]
2777                        }
2778                    }), this.successList = c.grep(this.successList, function(t) {
2779                        return !(t.name in e)
2780                    })
2781                }
2782                this.settings.showErrors ? this.settings.showErrors.call(this, this.errorMap, this.errorList) : this.defaultShowErrors()
2783            },
2784            resetForm: function() {
2785                c.fn.resetForm && c(this.currentForm).resetForm(), this.invalid = {}, this.submitted = {}, this.prepareForm(), this.hideErrors();
2786                var t = this.elements().removeData("previousValue").removeAttr("aria-invalid");
2787                this.resetElements(t)
2788            },
2789            resetElements: function(t) {
2790                var e;
2791                if (this.settings.unhighlight)
2792                    for (e = 0; t[e]; e++) this.settings.unhighlight.call(this, t[e], this.settings.errorClass, ""), this.findByName(t[e].name).removeClass(this.settings.validClass);
2793                else t.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)
2794            },
2795            numberOfInvalids: function() {
2796                return this.objectLength(this.invalid)
2797            },
2798            objectLength: function(t) {
2799                var e, i = 0;
2800                for (e in t) void 0 !== t[e] && null !== t[e] && !1 !== t[e] && i++;
2801                return i
2802            },
2803            hideErrors: function() {
2804                this.hideThese(this.toHide)
2805            },
2806            hideThese: function(t) {
2807                t.not(this.containers).text(""), this.addWrapper(t).hide()
2808            },
2809            valid: function() {
2810                return 0 === this.size()
2811            },
2812            size: function() {
2813                return this.errorList.length
2814            },
2815            focusInvalid: function() {
2816                if (this.settings.focusInvalid) try {
2817                    c(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").trigger("focus").trigger("focusin")
2818                } catch (t) {}
2819            },
2820            findLastActive: function() {
2821                var e = this.lastActive;
2822                return e && 1 === c.grep(this.errorList, function(t) {
2823                    return t.element.name === e.name
2824                }).length && e
2825            },
2826            elements: function() {
2827                var i = this,
2828                    n = {};
2829                return c(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function() {
2830                    var t = this.name || c(this).attr("name"),
2831                        e = void 0 !== c(this).attr("contenteditable") && "false" !== c(this).attr("contenteditable");
2832                    return !t && i.settings.debug && window.console && console.error("%o has no name assigned", this), e && (this.form = c(this).closest("form")[0], this.name = t), !(this.form !== i.currentForm || t in n || !i.objectLength(c(this).rules()) || (n[t] = !0, 0))
2833                })
2834            },
2835            clean: function(t) {
2836                return c(t)[0]
2837            },
2838            errors: function() {
2839                var t = this.settings.errorClass.split(" ").join(".");
2840                return c(this.settings.errorElement + "." + t, this.errorContext)
2841            },
2842            resetInternals: function() {
2843                this.successList = [], this.errorList = [], this.errorMap = {}, this.toShow = c([]), this.toHide = c([])
2844            },
2845            reset: function() {
2846                this.resetInternals(), this.currentElements = c([])
2847            },
2848            prepareForm: function() {
2849                this.reset(), this.toHide = this.errors().add(this.containers)
2850            },
2851            prepareElement: function(t) {
2852                this.reset(), this.toHide = this.errorsFor(t)
2853            },
2854            elementValue: function(t) {
2855                var e, i, n = c(t),
2856                    s = t.type,
2857                    o = void 0 !== n.attr("contenteditable") && "false" !== n.attr("contenteditable");
2858                return "radio" === s || "checkbox" === s ? this.findByName(t.name).filter(":checked").val() : "number" === s && void 0 !== t.validity ? t.validity.badInput ? "NaN" : n.val() : (e = o ? n.text() : n.val(), "file" === s ? "C:\\fakepath\\" === e.substr(0, 12) ? e.substr(12) : 0 <= (i = e.lastIndexOf("/")) ? e.substr(i + 1) : 0 <= (i = e.lastIndexOf("\\")) ? e.substr(i + 1) : e : "string" == typeof e ? e.replace(/\r/g, "") : e)
2859            },
2860            check: function(e) {
2861                e = this.validationTargetFor(this.clean(e));
2862                var t, i, n, s, o = c(e).rules(),
2863                    r = c.map(o, function(t, e) {
2864                        return e
2865                    }).length,
2866                    a = !1,
2867                    l = this.elementValue(e);
2868                for (i in "function" == typeof o.normalizer ? s = o.normalizer : "function" == typeof this.settings.normalizer && (s = this.settings.normalizer), s && (l = s.call(e, l), delete o.normalizer), o) {
2869                    n = {
2870                        method: i,
2871                        parameters: o[i]
2872                    };
2873                    try {
2874                        if ("dependency-mismatch" === (t = c.validator.methods[i].call(this, l, e, n.parameters)) && 1 === r) {
2875                            a = !0;
2876                            continue
2877                        }
2878                        if (a = !1, "pending" === t) return void(this.toHide = this.toHide.not(this.errorsFor(e)));
2879                        if (!t) return this.formatAndAdd(e, n), !1
2880                    } catch (t) {
2881                        throw this.settings.debug && window.console && console.log("Exception occurred when checking element " + e.id + ", check the '" + n.method + "' method.", t), t instanceof TypeError && (t.message += ".  Exception occurred when checking element " + e.id + ", check the '" + n.method + "' method."), t
2882                    }
2883                }
2884                if (!a) return this.objectLength(o) && this.successList.push(e), !0
2885            },
2886            customDataMessage: function(t, e) {
2887                return c(t).data("msg" + e.charAt(0).toUpperCase() + e.substring(1).toLowerCase()) || c(t).data("msg")
2888            },
2889            customMessage: function(t, e) {
2890                var i = this.settings.messages[t];
2891                return i && (i.constructor === String ? i : i[e])
2892            },
2893            findDefined: function() {
2894                for (var t = 0; t < arguments.length; t++)
2895                    if (void 0 !== arguments[t]) return arguments[t]
2896            },
2897            defaultMessage: function(t, e) {
2898                "string" == typeof e && (e = {
2899                    method: e
2900                });
2901                var i = this.findDefined(this.customMessage(t.name, e.method), this.customDataMessage(t, e.method), !this.settings.ignoreTitle && t.title || void 0, c.validator.messages[e.method], "<strong>Warning: No message defined for " + t.name + "</strong>"),
2902                    n = /\$?\{(\d+)\}/g;
2903                return "function" == typeof i ? i = i.call(this, e.parameters, t) : n.test(i) && (i = c.validator.format(i.replace(n, "{$1}"), e.parameters)), i
2904            },
2905            formatAndAdd: function(t, e) {
2906                var i = this.defaultMessage(t, e);
2907                this.errorList.push({
2908                    message: i,
2909                    element: t,
2910                    method: e.method
2911                }), this.errorMap[t.name] = i, this.submitted[t.name] = i
2912            },
2913            addWrapper: function(t) {
2914                return this.settings.wrapper && (t = t.add(t.parent(this.settings.wrapper))), t
2915            },
2916            defaultShowErrors: function() {
2917                var t, e, i;
2918                for (t = 0; this.errorList[t]; t++) i = this.errorList[t], this.settings.highlight && this.settings.highlight.call(this, i.element, this.settings.errorClass, this.settings.val
2918idClass), this.showLabel(i.element, i.message);
2919                if (this.errorList.length && (this.toShow = this.toShow.add(this.containers)), this.settings.success)
2920                    for (t = 0; this.successList[t]; t++) this.showLabel(this.successList[t]);
2921                if (this.settings.unhighlight)
2922                    for (t = 0, e = this.validElements(); e[t]; t++) this.settings.unhighlight.call(this, e[t], this.settings.errorClass, this.settings.validClass);
2923                this.toHide = this.toHide.not(this.toShow), this.hideErrors(), this.addWrapper(this.toShow).show()
2924            },
2925            validElements: function() {
2926                return this.currentElements.not(this.invalidElements())
2927            },
2928            invalidElements: function() {
2929                return c(this.errorList).map(function() {
2930                    return this.element
2931                })
2932            },
2933            showLabel: function(t, e) {
2934                var i, n, s, o, r = this.errorsFor(t),
2935                    a = this.idOrName(t),
2936                    l = c(t).attr("aria-describedby");
2937                r.length ? (r.removeClass(this.settings.validClass).addClass(this.settings.errorClass), r.html(e)) : (i = r = c("<" + this.settings.errorElement + ">").attr("id", a + "-error").addClass(this.settings.errorClass).html(e || ""), this.settings.wrapper && (i = r.hide().show().wrap("<" + this.settings.wrapper + "/>").parent()), this.labelContainer.length ? this.labelContainer.append(i) : this.settings.errorPlacement ? this.settings.errorPlacement.call(this, i, c(t)) : i.insertAfter(t), r.is("label") ? r.attr("for", a) : 0 === r.parents("label[for='" + this.escapeCssMeta(a) + "']").length && (s = r.attr("id"), l ? l.match(new RegExp("\\b" + this.escapeCssMeta(s) + "\\b")) || (l += " " + s) : l = s, c(t).attr("aria-describedby", l), (n = this.groups[t.name]) && (o = this, c.each(o.groups, function(t, e) {
2938                    e === n && c("[name='" + o.escapeCssMeta(t) + "']", o.currentForm).attr("aria-describedby", r.attr("id"))
2939                })))), !e && this.settings.success && (r.text(""), "string" == typeof this.settings.success ? r.addClass(this.settings.success) : this.settings.success(r, t)), this.toShow = this.toShow.add(r)
2940            },
2941            errorsFor: function(t) {
2942                var e = this.escapeCssMeta(this.idOrName(t)),
2943                    i = c(t).attr("aria-describedby"),
2944                    n = "label[for='" + e + "'], label[for='" + e + "'] *";
2945                return i && (n = n + ", #" + this.escapeCssMeta(i).replace(/\s+/g, ", #")), this.errors().filter(n)
2946            },
2947            escapeCssMeta: function(t) {
2948                return t.replace(/([\\!"#$%&'()*+,.\/:;<=>?@\[\]^`{|}~])/g, "\\$1")
2949            },
2950            idOrName: function(t) {
2951                return this.groups[t.name] || !this.checkable(t) && t.id || t.name
2952            },
2953            validationTargetFor: function(t) {
2954                return this.checkable(t) && (t = this.findByName(t.name)), c(t).not(this.settings.ignore)[0]
2955            },
2956            checkable: function(t) {
2957                return /radio|checkbox/i.test(t.type)
2958            },
2959            findByName: function(t) {
2960                return c(this.currentForm).find("[name='" + this.escapeCssMeta(t) + "']")
2961            },
2962            getLength: function(t, e) {
2963                switch (e.nodeName.toLowerCase()) {
2964                    case "select":
2965                        return c("option:selected", e).length;
2966                    case "input":
2967                        if (this.checkable(e)) return this.findByName(e.name).filter(":checked").length
2968                }
2969                return t.length
2970            },
2971            depend: function(t, e) {
2972                return !this.dependTypes[typeof t] || this.dependTypes[typeof t](t, e)
2973            },
2974            dependTypes: {
2975                boolean: function(t) {
2976                    return t
2977                },
2978                string: function(t, e) {
2979                    return !!c(t, e.form).length
2980                },
2981                function: function(t, e) {
2982                    return t(e)
2983                }
2984            },
2985            optional: function(t) {
2986                var e = this.elementValue(t);
2987                return !c.validator.methods.required.call(this, e, t) && "dependency-mismatch"
2988            },
2989            startRequest: function(t) {
2990                this.pending[t.name] || (this.pendingRequest++, c(t).addClass(this.settings.pendingClass), this.pending[t.name] = !0)
2991            },
2992            stopRequest: function(t, e) {
2993                this.pendingRequest--, this.pendingRequest < 0 && (this.pendingRequest = 0), delete this.pending[t.name], c(t).removeClass(this.settings.pendingClass), e && 0 === this.pendingRequest && this.formSubmitted && this.form() ? (c(this.currentForm).submit(), this.submitButton && c("input:hidden[name='" + this.submitButton.name + "']", this.currentForm).remove(), this.formSubmitted = !1) : !e && 0 === this.pendingRequest && this.formSubmitted && (c(this.currentForm).triggerHandler("invalid-form", [this]), this.formSubmitted = !1)
2994            },
2995            previousValue: function(t, e) {
2996                return e = "string" == typeof e && e || "remote", c.data(t, "previousValue") || c.data(t, "previousValue", {
vendor: 5,821 bytes, lines 2997-3112
2997                    old: null,
2998                    valid: !0,
2999                    message: this.defaultMessage(t, {
3000                        method: e
3001                    })
3002                })
3003            },
3004            destroy: function() {
3005                this.resetForm(), c(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur").find(".validate-lessThan-blur").off(".validate-lessThan").removeClass("validate-lessThan-blur").find(".validate-lessThanEqual-blur").off(".validate-lessThanEqual").removeClass("validate-lessThanEqual-blur").find(".validate-greaterThanEqual-blur").off(".validate-greaterThanEqual").removeClass("validate-greaterThanEqual-blur").find(".validate-greaterThan-blur").off(".validate-greaterThan").removeClass("validate-greaterThan-blur")
3006            }
3007        },
3008        classRuleSettings: {
3009            required: {
3010                required: !0
3011            },
3012            email: {
3013                email: !0
3014            },
3015            url: {
3016                url: !0
3017            },
3018            date: {
3019                date: !0
3020            },
3021            dateISO: {
3022                dateISO: !0
3023            },
3024            number: {
3025                number: !0
3026            },
3027            digits: {
3028                digits: !0
3029            },
3030            creditcard: {
3031                creditcard: !0
3032            }
3033        },
3034        addClassRules: function(t, e) {
3035            t.constructor === String ? this.classRuleSettings[t] = e : c.extend(this.classRuleSettings, t)
3036        },
3037        classRules: function(t) {
3038            var e = {},
3039                i = c(t).attr("class");
3040            return i && c.each(i.split(" "), function() {
3041                this in c.validator.classRuleSettings && c.extend(e, c.validator.classRuleSettings[this])
3042            }), e
3043        },
3044        normalizeAttributeRule: function(t, e, i, n) {
3045            /min|max|step/.test(i) && (null === e || /number|range|text/.test(e)) && (n = Number(n), isNaN(n) && (n = void 0)), n || 0 === n ? t[i] = n : e === i && "range" !== e && (t[i] = !0)
3046        },
3047        attributeRules: function(t) {
3048            var e, i, n = {},
3049                s = c(t),
3050                o = t.getAttribute("type");
3051            for (e in c.validator.methods) i = "required" === e ? ("" === (i = t.getAttribute(e)) && (i = !0), !!i) : s.attr(e), this.normalizeAttributeRule(n, o, e, i);
3052            return n.maxlength && /-1|2147483647|524288/.test(n.maxlength) && delete n.maxlength, n
3053        },
3054        dataRules: function(t) {
3055            var e, i, n = {},
3056                s = c(t),
3057                o = t.getAttribute("type");
3058            for (e in c.validator.methods) "" === (i = s.data("rule" + e.charAt(0).toUpperCase() + e.substring(1).toLowerCase())) && (i = !0), this.normalizeAttributeRule(n, o, e, i);
3059            return n
3060        },
3061        staticRules: function(t) {
3062            var e = {},
3063                i = c.data(t.form, "validator");
3064            return i.settings.rules && (e = c.validator.normalizeRule(i.settings.rules[t.name]) || {}), e
3065        },
3066        normalizeRules: function(n, s) {
3067            return c.each(n, function(t, e) {
3068                if (!1 !== e) {
3069                    if (e.param || e.depends) {
3070                        var i = !0;
3071                        switch (typeof e.depends) {
3072                            case "string":
3073                                i = !!c(e.depends, s.form).length;
3074                                break;
3075                            case "function":
3076                                i = e.depends.call(s, s)
3077                        }
3078                        i ? n[t] = void 0 === e.param || e.param : (c.data(s.form, "validator").resetElements(c(s)), delete n[t])
3079                    }
3080                } else delete n[t]
3081            }), c.each(n, function(t, e) {
3082                n[t] = c.isFunction(e) && "normalizer" !== t ? e(s) : e
3083            }), c.each(["minlength", "maxlength"], function() {
3084                n[this] && (n[this] = Number(n[this]))
3085            }), c.each(["rangelength", "range"], function() {
3086                var t;
3087                n[this] && (c.isArray(n[this]) ? n[this] = [Number(n[this][0]), Number(n[this][1])] : "string" == typeof n[this] && (t = n[this].replace(/[\[\]]/g, "").split(/[\s,]+/), n[this] = [Number(t[0]), Number(t[1])]))
3088            }), c.validator.autoCreateRanges && (null != n.min && null != n.max && (n.range = [n.min, n.max], delete n.min, delete n.max), null != n.minlength && null != n.maxlength && (n.rangelength = [n.minlength, n.maxlength], delete n.minlength, delete n.maxlength)), n
3089        },
3090        normalizeRule: function(t) {
3091            if ("string" == typeof t) {
3092                var e = {};
3093                c.each(t.split(/\s/), function() {
3094                    e[this] = !0
3095                }), t = e
3096            }
3097            return t
3098        },
3099        addMethod: function(t, e, i) {
3100            c.validator.methods[t] = e, c.validator.messages[t] = void 0 !== i ? i : c.validator.messages[t], e.length < 3 && c.validator.addClassRules(t, c.validator.normalizeRule(t))
3101        },
3102        methods: {
3103            required: function(t, e, i) {
3104                if (!this.depend(i, e)) return "dependency-mismatch";
3105                if ("select" !== e.nodeName.toLowerCase()) return this.checkable(e) ? 0 < this.getLength(t, e) : null != t && 0 < t.length;
3106                var n = c(e).val();
3107                return n && 0 < n.length
3108            },
3109            email: function(t, e) {
3110                return this.optional(e) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(t)
3111            },
3112            url: function(t, e) {
3113                return this.optional(e) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[\/?#]\S*)?$/i.test(t)
3114            },
3115            date: (i = !1, function(t, e) {
3116                return i || (i = !0, this.settings.debug && window.console && console.warn("The `date` method is deprecated and will be removed in version '2.0.0'.\nPlease don't use it, since it relies on the Date constructor, which\nbehaves very differently across browsers and locales. Use `dateISO`\ninstead or one of the locale specific methods in `localizations/`\nand `additional-methods.js`.")), this.optional(e) || !/Invalid|NaN/.test(new Date(t).toString())
3117            }),
3118            dateISO: function(t, e) {
3119                return this.optional(e) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(t)
3120            },
3121            number: function(t, e) {
3122                return this.optional(e) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(t)
3123            },
3124            digits: function(t, e) {
3125                return this.optional(e) || /^\d+$/.test(t)
3126            },
3127            minlength: function(t, e, i) {
3128                var n = c.isArray(t) ? t.length : this.getLength(t, e);
3129                return this.optional(e) || i <= n
3130            },
3131            maxlength: function(t, e, i) {
3132                var n = c.isArray(t) ? t.length : this.getLength(t, e);
3133                return this.optional(e) || n <= i
3134            },
3135            rangelength: function(t, e, i) {
3136                var n = c.isArray(t) ? t.length : this.getLength(t, e);
3137                return this.optional(e) || n >= i[0] && n <= i[1]
3138            },
3139            min: function(t, e, i) {
3140                return this.optional(e) || i <= t
3141            },
3142            max: function(t, e, i) {
3143                return this.optional(e) || t <= i
3144            },
3145            range: function(t, e, i) {
3146                return this.optional(e) || t >= i[0] && t <= i[1]
3147            },
3148            step: function(t, e, i) {
3149                function n(t) {
3150                    var e = ("" + t).match(/(?:\.(\d+))?$/);
3151                    return e && e[1] ? e[1].length : 0
3152                }
3153
3154                function s(t) {
3155                    return Math.round(t * Math.pow(10, o))
3156                }
3157                var o, r = c(e).attr("type"),
3158                    a = "Step attribute on input type " + r + " is not supported.",
3159                    l = new RegExp("\\b" + r + "\\b"),
3160                    h = !0;
3161                if (r && !l.test(["text", "number", "range"].join())) throw new Error(a);
3162                return o = n(i), (n(t) > o || s(t) % s(i) != 0) && (h = !1), this.optional(e) || h
3163            },
3164            equalTo: function(t, e, i) {
3165                var n = c(i);
3166                return this.settings.onfocusout && n.not(".validate-equalTo-blur").length && n.addClass("validate-equalTo-blur").on("blur.validate-equalTo", function() {
3167                    c(e).valid()
3168                }), t === n.val()
3169            },
3170            remote: function(o, r, t, a) {
3171                if (this.optional(r)) return "dependency-mismatch";
3172                a = "string" == typeof a && a || "remote";
3173                var l, e, i, h = this.previousValue(r, a);
3174                return this.settings.messages[r.name] || (this.settings.messages[r.name] = {}), h.originalMessage = h.originalMessage || this.settings.messages[r.name][a], this.settings.messages[r.name][a] = h.message, t = "string" == typeof t ? {
3175                    url: t
3176                } : t, i = c.param(c.extend({
3177                    data: o
3178                }, t.data)), h.old === i ? h.valid : (h.old = i, (l = this).startRequest(r), (e = {})[r.name] = o, c.ajax(c.extend(!0, {
3179                    mode: "abort",
3180                    port: "validate" + r.name,
3181                    dataType: "json",
3182                    data: e,
3183                    context: l.currentForm,
3184                    success: function(t) {
3185                        var e, i, n, s = !0 === t || "true" === t;
3186                        l.settings.messages[r.name][a] = h.originalMessage, s ? (n = l.formSubmitted, l.resetInternals(), l.toHide = l.errorsFor(r), l.formSubmitted = n, l.successList.push(r), l.invali
3186d[r.name] = !1, l.showErrors()) : (e = {}, i = t || l.defaultMessage(r, {
3187                            method: a,
3188                            parameters: o
3189                        }), e[r.name] = h.message = i, l.invalid[r.name] = !0, l.showErrors(e)), h.valid = s, l.stopRequest(r, s)
3190                    }
3191                }, t)), "pending")
3192            }
3193        }
3194    });
3195    var n, s = {};
3196    return c.ajaxPrefilter ? c.ajaxPrefilter(function(t, e, i) {
3197        var n = t.port;
3198        "abort" === t.mode && (s[n] && s[n].abort(), s[n] = i)
3199    }) : (n = c.ajax, c.ajax = function(t) {
3200        var e = ("mode" in t ? t : c.ajaxSettings).mode,
3201            i = ("port" in t ? t : c.ajaxSettings).port;
3202        return "abort" === e ? (s[i] && s[i].abort(), s[i] = n.apply(this, arguments), s[i]) : n.apply(this, arguments)
3203    }), c
3204}),
3205function() {
3206    "use strict";
3207
3208    function e(t) {
3209        if (!t) throw new Error("No options passed to Waypoint constructor");
3210        if (!t.element) throw new Error("No element option passed to Waypoint constructor");
3211        if (!t.handler) throw new Error("No handler option passed to Waypoint constructor");
3212        this.key = "waypoint-" + i, this.options = e.Adapter.extend({}, e.defaults, t), this.element = this.options.element, this.adapter = new e.Adapter(this.element), this.callback = t.handler, this.axis = this.options.horizontal ? "horizontal" : "vertical", this.enabled = this.options.enabled, this.triggerPoint = null, this.group = e.Group.findOrCreate({
3213            name: this.options.group,
3214            axis: this.axis
3215        }), this.context = e.Context.findOrCreateByElement(this.options.context), e.offsetAliases[this.options.offset] && (this.options.offset = e.offsetAliases[this.options.offset]), this.group.add(this), this.context.add(this), o[this.key] = this, i += 1
3216    }
3217    var i = 0,
3218        o = {};
3219    e.prototype.queueTrigger = function(t) {
3220        this.group.queueTrigger(this, t)
3221    }, e.prototype.trigger = function(t) {
3222        this.enabled && this.callback && this.callback.apply(this, t)
3223    }, e.prototype.destroy = function() {
3224        this.context.remove(this), this.group.remove(this), delete o[this.key]
3225    }, e.prototype.disable = function() {
3226        return this.enabled = !1, this
3227    }, e.prototype.enable = function() {
3228        return this.context.refresh(), this.enabled = !0, this
3229    }, e.prototype.next = function() {
3230        return this.group.next(this)
3231    }, e.prototype.previous = function() {
3232        return this.group.previous(this)
3233    }, e.invokeAll = function(t) {
3234        var e = [];
3235        for (var i in o) e.push(o[i]);
3236        for (var n = 0, s = e.length; n < s; n++) e[n][t]()
3237    }, e.destroyAll = function() {
3238        e.invokeAll("destroy")
3239    }, e.disableAll = function() {
3240        e.invokeAll("disable")
3241    }, e.enableAll = function() {
3242        for (var t in e.Context.refreshAll(), o) o[t].enabled = !0;
3243        return this
3244    }, e.refreshAll = function() {
3245        e.Context.refreshAll()
3246    }, e.viewportHeight = function() {
3247        return window.innerHeight || document.documentElement.clientHeight
3248    }, e.viewportWidth = function() {
3249        return document.documentElement.clientWidth
3250    }, e.adapters = [], e.defaults = {
3251        context: window,
3252        continuous: !0,
3253        enabled: !0,
3254        group: "default",
3255        horizontal: !1,
3256        offset: 0
3257    }, e.offsetAliases = {
3258        "bottom-in-view": function() {
3259            return this.context.innerHeight() - this.adapter.outerHeight()
3260        },
3261        "right-in-view": function() {
3262            return this.context.innerWidth() - this.adapter.outerWidth()
3263        }
3264    }, window.Waypoint = e
3265}(),
3266function() {
3267    "use strict";
3268
3269    function e(t) {
3270        window.setTimeout(t, 1e3 / 60)
3271    }
3272
3273    function i(t) {
3274        this.element = t, this.Adapter = g.Adapter, this.adapter = new this.Adapter(t), this.key = "waypoint-context-" + n, this.didScroll = !1, this.didResize = !1, this.oldScroll = {
3275            x: this.adapter.scrollLeft(),
3276            y: this.adapter.scrollTop()
3277        }, this.waypoints = {
3278            vertical: {},
3279            horizontal: {}
3280        }, t.waypointContextKey = this.key, s[t.waypointContextKey] = this, n += 1, g.windowContext || (g.windowContext = !0, g.windowContext = new i(window)), this.createThrottledScrollHandler(), this.createThrottledResizeHandler()
3281    }
3282    var n = 0,
3283        s = {},
3284        g = window.Waypoint,
3285        t = window.onload;
3286    i.prototype.add = function(t) {
3287        var e = t.options.horizontal ? "horizontal" : "vertical";
3288        this.waypoints[e][t.key] = t, this.refresh()
3289    }, i.prototype.checkEmpty = function() {
3290        var t = this.Adapter.isEmptyObject(this.waypoints.horizontal),
3291            e = this.Adapter.isEmptyObject(this.waypoints.vertical),
3292            i = this.element == this.element.window;
3293        t && e && !i && (this.adapter.off(".waypoints"), delete s[this.key])
3294    }, i.prototype.createThrottledResizeHandler = function() {
3295        function t() {
3296            e.handleResize(), e.didResize = !1
3297        }
3298        var e = this;
3299        this.adapter.on("resize.waypoints", function() {
3300            e.didResize || (e.didResize = !0, g.requestAnimationFrame(t))
3301        })
3302    }, i.prototype.createThrottledScrollHandler = function() {
3303        function t() {
3304            e.handleScroll(), e.didScroll = !1
3305        }
3306        var e = this;
3307        this.adapter.on("scroll.waypoints", function() {
3308            e.didScroll && !g.isTouch || (e.didScroll = !0, g.requestAnimationFrame(t))
3309        })
3310    }, i.prototype.handleResize = function() {
3311        g.Context.refreshAll()
3312    }, i.prototype.handleScroll = function() {
3313        var t = {},
3314            e = {
3315                horizontal: {
3316                    newScroll: this.adapter.scrollLeft(),
3317                    oldScroll: this.oldScroll.x,
3318                    forward: "right",
3319                    backward: "left"
3320                },
3321                vertical: {
3322                    newScroll: this.adapter.scrollTop(),
3323                    oldScroll: this.oldScroll.y,
3324                    forward: "down",
3325                    backward: "up"
3326                }
3327            };
3328        for (var i in e) {
3329            var n = e[i],
3330                s = n.newScroll > n.oldScroll ? n.forward : n.backward;
3331            for (var o in this.waypoints[i]) {
3332                var r = this.waypoints[i][o];
3333                if (null !== r.triggerPoint) {
3334                    var a = n.oldScroll < r.triggerPoint,
3335                        l = n.newScroll >= r.triggerPoint;
3336                    (a && l || !a && !l) && (r.queueTrigger(s), t[r.group.id] = r.group)
3337                }
3338            }
3339        }
3340        for (var h in t) t[h].flushTriggers();
3341        this.oldScroll = {
3342            x: e.horizontal.newScroll,
3343            y: e.vertical.newScroll
3344        }
3345    }
vendor: 5,348 bytes, lines 3345-3471
3345, i.prototype.innerHeight = function() {
3346        return this.element == this.element.window ? g.viewportHeight() : this.adapter.innerHeight()
3347    }, i.prototype.remove = function(t) {
3348        delete this.waypoints[t.axis][t.key], this.checkEmpty()
3349    }, i.prototype.innerWidth = function() {
3350        return this.element == this.element.window ? g.viewportWidth() : this.adapter.innerWidth()
3351    }, i.prototype.destroy = function() {
3352        var t = [];
3353        for (var e in this.waypoints)
3354            for (var i in this.waypoints[e]) t.push(this.waypoints[e][i]);
3355        for (var n = 0, s = t.length; n < s; n++) t[n].destroy()
3356    }, i.prototype.refresh = function() {
3357        var t, e = this.element == this.element.window,
3358            i = e ? void 0 : this.adapter.offset(),
3359            n = {};
3360        for (var s in this.handleScroll(), t = {
3361                horizontal: {
3362                    contextOffset: e ? 0 : i.left,
3363                    contextScroll: e ? 0 : this.oldScroll.x,
3364                    contextDimension: this.innerWidth(),
3365                    oldScroll: this.oldScroll.x,
3366                    forward: "right",
3367                    backward: "left",
3368                    offsetProp: "left"
3369                },
3370                vertical: {
3371                    contextOffset: e ? 0 : i.top,
3372                    contextScroll: e ? 0 : this.oldScroll.y,
3373                    contextDimension: this.innerHeight(),
3374                    oldScroll: this.oldScroll.y,
3375                    forward: "down",
3376                    backward: "up",
3377                    offsetProp: "top"
3378                }
3379            }) {
3380            var o = t[s];
3381            for (var r in this.waypoints[s]) {
3382                var a, l, h, c, u = this.waypoints[s][r],
3383                    d = u.options.offset,
3384                    f = u.triggerPoint,
3385                    p = 0,
3386                    m = null == f;
3387                u.element !== u.element.window && (p = u.adapter.offset()[o.offsetProp]), "function" == typeof d ? d = d.apply(u) : "string" == typeof d && (d = parseFloat(d), -1 < u.options.offset.indexOf("%") && (d = Math.ceil(o.contextDimension * d / 100))), a = o.contextScroll - o.contextOffset, u.triggerPoint = Math.floor(p + a - d), l = f < o.oldScroll, h = u.triggerPoint >= o.oldScroll, c = !l && !h, !m && (l && h) ? (u.queueTrigger(o.backward), n[u.group.id] = u.group) : (!m && c || m && o.oldScroll >= u.triggerPoint) && (u.queueTrigger(o.forward), n[u.group.id] = u.group)
3388            }
3389        }
3390        return g.requestAnimationFrame(function() {
3391            for (var t in n) n[t].flushTriggers()
3392        }), this
3393    }, i.findOrCreateByElement = function(t) {
3394        return i.findByElement(t) || new i(t)
3395    }, i.refreshAll = function() {
3396        for (var t in s) s[t].refresh()
3397    }, i.findByElement = function(t) {
3398        return s[t.waypointContextKey]
3399    }, window.onload = function() {
3400        t && t(), i.refreshAll()
3401    }, g.requestAnimationFrame = function(t) {
3402        (window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || e).call(window, t)
3403    }, g.Context = i
3404}(),
3405function() {
3406    "use strict";
3407
3408    function r(t, e) {
3409        return t.triggerPoint - e.triggerPoint
3410    }
3411
3412    function a(t, e) {
3413        return e.triggerPoint - t.triggerPoint
3414    }
3415
3416    function e(t) {
3417        this.name = t.name, this.axis = t.axis, this.id = this.name + "-" + this.axis, this.waypoints = [], this.clearTriggerQueues(), i[this.axis][this.name] = this
3418    }
3419    var i = {
3420            vertical: {},
3421            horizontal: {}
3422        },
3423        n = window.Waypoint;
3424    e.prototype.add = function(t) {
3425        this.waypoints.push(t)
3426    }, e.prototype.clearTriggerQueues = function() {
3427        this.triggerQueues = {
3428            up: [],
3429            down: [],
3430            left: [],
3431            right: []
3432        }
3433    }, e.prototype.flushTriggers = function() {
3434        for (var t in this.triggerQueues) {
3435            var e = this.triggerQueues[t],
3436                i = "up" === t || "left" === t;
3437            e.sort(i ? a : r);
3438            for (var n = 0, s = e.length; n < s; n += 1) {
3439                var o = e[n];
3440                !o.options.continuous && n !== e.length - 1 || o.trigger([t])
3441            }
3442        }
3443        this.clearTriggerQueues()
3444    }, e.prototype.next = function(t) {
3445        this.waypoints.sort(r);
3446        var e = n.Adapter.inArray(t, this.waypoints);
3447        return e === this.waypoints.length - 1 ? null : this.waypoints[e + 1]
3448    }, e.prototype.previous = function(t) {
3449        this.waypoints.sort(r);
3450        var e = n.Adapter.inArray(t, this.waypoints);
3451        return e ? this.waypoints[e - 1] : null
3452    }, e.prototype.queueTrigger = function(t, e) {
3453        this.triggerQueues[e].push(t)
3454    }, e.prototype.remove = function(t) {
3455        var e = n.Adapter.inArray(t, this.waypoints); - 1 < e && this.waypoints.splice(e, 1)
3456    }, e.prototype.first = function() {
3457        return this.waypoints[0]
3458    }, e.prototype.last = function() {
3459        return this.waypoints[this.waypoints.length - 1]
3460    }, e.findOrCreate = function(t) {
3461        return i[t.axis][t.name] || new e(t)
3462    }, n.Group = e
3463}(),
3464function() {
3465    "use strict";
3466
3467    function i(t) {
3468        this.$element = n(t)
3469    }
3470    var n = window.jQuery,
3471        t = window.Waypoint;
3472    n.each(["innerHeight", "innerWidth", "off", "offset", "on", "outerHeight", "outerWidth", "scrollLeft", "scrollTop"], function(t, e) {
3473        i.prototype[e] = function() {
3474            var t = Array.prototype.slice.call(arguments);
3475            return this.$element[e].apply(this.$element, t)
3476        }
3477    }), n.each(["extend", "inArray", "isEmptyObject"], function(t, e) {
3478        i[e] = n[e]
3479    }), t.adapters.push({
3480        name: "jquery",
3481        Adapter: i
3482    }), t.Adapter = i
3483}(),
3484function() {
3485    "use strict";
3486
3487    function t(n) {
3488        return function() {
3489            var e = [],
3490                i = arguments[0];
3491            return n.isFunction(arguments[0]) && ((i = n.extend({}, arguments[1])).handler = arguments[0]), this.each(function() {
3492                var t = n.extend({}, i, {
3493                    element: this
3494                });
3495                "string" == typeof t.context && (t.context = n(this).closest(t.context)[0]), e.push(new s(t))
3496            }), e
3497        }
3498    }
3499    var s = window.Waypoint;
3500    window.jQuery && (window.jQuery.fn.waypoint = t(window.jQuery)), window.Zepto && (window.Zepto.fn.waypoint = t(window.Zepto))
3501}(),
3502function(l, i, s, a) {
3503    function h(t, e) {
3504        this.settings = null, this.options = l.extend({}, h.Defaults, e), this.$element = l(t), this._handlers = {}, this._plugins = {}, this._supress = {}, this._current = null, this._speed = null, this._coordinates = [], this._breakpoint = null, this._width = null, this._items = [], this._clones = [], this._mergers = [], this._widths = [], this._invalidated = {}, this._pipe = [], this._drag = {
3505            time: null,
3506            target: null,
3507            pointer: null,
3508            stage: {
3509                start: null,
3510                current: null
3511            },
3512            direction: null
3513        }, this._states = {
3514            current: {},
3515            tags: {
3516                initializing: ["busy"],
3517                animating: ["busy"],
3518                dragging: ["interacting"]
3519            }
3520        }, l.each(["onResize", "onThrottledResize"], l.proxy(function(t, e) {
3521            this._handlers[e] = l.proxy(this[e], this)
3522        }, this)), l.each(h.Plugins, l.proxy(function(t, e) {
3523            this._plugins[t.charAt(0).toLowerCase() + t.slice(1)] = new e(this)
3524        }, this)), l.each(h.Workers, l.proxy(function(t, e) {
3525            this._pipe.push({
3526                filter: e.filter,
3527                run: l.proxy(e.run, this)
3528            })
3529        }, this)), this.setup(), this.initialize()
3530    }
3531    h.Defaults = {
3532        items: 3,
3533        loop: !1,
3534        center: !1,
3535        rewind: !1,
3536        checkVisibility: !0,
3537        mouseDrag: !0,
3538        touchDrag: !0,
3539        pullDrag: !0,
3540        freeDrag: !1,
3541        margin: 0,
3542        stagePadding: 0,
3543        merge: !1,
3544        mergeFit: !0,
3545        autoWidth: !1,
3546        startPosition: 0,
3547        rtl: !1,
3548        smartSpeed: 250,
3549        fluidSpeed: !1,
3550        dragEndSpeed: !1,
3551        responsive: {},
3552        responsiveRefreshRate: 200,
3553        responsiveBaseElement: i,
3554        fallbackEasing: "swing",
3555        slideTransition: "",
3556        info: !1,
3557        nestedItemSelector: !1,
3558        itemElement: "div",
3559        stageElement: "div",
3560        refreshClass: "owl-refresh",
3561        loadedClass: "owl-loaded",
3562        loadingClass: "owl-loading",
3563        rtlClass: "owl-rtl",
3564        responsiveClass: "owl-responsive",
3565        dragClass: "owl-drag",
3566        itemClass: "owl-item",
3567        stageClass: "owl-stage",
3568        stageOuterClass: "owl-stage-outer",
3569        grabClass: "owl-grab"
3570    }, h.Width = {
3571        Default: "default",
3572        Inner: "inner",
3573        Outer: "outer"
3574    }, h.Type = {
3575        Event: "event",
3576        State: "state"
3577    }, h.Plugins = {}, h.Workers = [{
3578        filter: ["width", "settings"],
3579        run: function() {
3580            this._width = this.$element.width()
3581        }
3582    }, {
3583        filter: ["width", "items", "settings"],
3584        run: function(t) {
3585            t.current = this._items && this._items[this.relative(this._current)]
3586        }
3587    }, {
3588        filter: ["items", "settings"],
3589        run: function() {
3590            this.$stage.children(".cloned").remove()
3591        }
3592    }, {
vendor: 36,621 bytes, lines 3593-4190
3593        filter: ["width", "items", "settings"],
3594        run: function(t) {
3595            var e = this.settings.margin || "",
3596                i = !this.settings.autoWidth,
3597                n = this.settings.rtl,
3598                s = {
3599                    width: "auto",
3600                    "margin-left": n ? e : "",
3601                    "margin-right": n ? "" : e
3602                };
3603            i || this.$stage.children().css(s), t.css = s
3604        }
3605    }, {
3606        filter: ["width", "items", "settings"],
3607        run: function(t) {
3608            var e = (this.width() / this.settings.items).toFixed(3) - this.settings.margin,
3609                i = null,
3610                n = this._items.length,
3611                s = !this.settings.autoWidth,
3612                o = [];
3613            for (t.items = {
3614                    merge: !1,
3615                    width: e
3616                }; n--;) i = this._mergers[n], i = this.settings.mergeFit && Math.min(i, this.settings.items) || i, t.items.merge = 1 < i || t.items.merge, o[n] = s ? e * i : this._items[n].width();
3617            this._widths = o
3618        }
3619    }, {
3620        filter: ["items", "settings"],
3621        run: function() {
3622            var t = [],
3623                e = this._items,
3624                i = this.settings,
3625                n = Math.max(2 * i.items, 4),
3626                s = 2 * Math.ceil(e.length / 2),
3627                o = i.loop && e.length ? i.rewind ? n : Math.max(n, s) : 0,
3628                r = "",
3629                a = "";
3630            for (o /= 2; 0 < o;) t.push(this.normalize(t.length / 2, !0)), r += e[t[t.length - 1]][0].outerHTML, t.push(this.normalize(e.length - 1 - (t.length - 1) / 2, !0)), a = e[t[t.length - 1]][0].outerHTML + a, --o;
3631            this._clones = t, l(r).addClass("cloned").appendTo(this.$stage), l(a).addClass("cloned").prependTo(this.$stage)
3632        }
3633    }, {
3634        filter: ["width", "items", "settings"],
3635        run: function() {
3636            for (var t = this.settings.rtl ? 1 : -1, e = this._clones.length + this._items.length, i = -1, n = 0, s = 0, o = []; ++i < e;) n = o[i - 1] || 0, s = this._widths[this.relative(i)] + this.settings.margin, o.push(n + s * t);
3637            this._coordinates = o
3638        }
3639    }, {
3640        filter: ["width", "items", "settings"],
3641        run: function() {
3642            var t = this.settings.stagePadding,
3643                e = this._coordinates,
3644                i = {
3645                    width: Math.ceil(Math.abs(e[e.length - 1])) + 2 * t,
3646                    "padding-left": t || "",
3647                    "padding-right": t || ""
3648                };
3649            this.$stage.css(i)
3650        }
3651    }, {
3652        filter: ["width", "items", "settings"],
3653        run: function(t) {
3654            var e = this._coordinates.length,
3655                i = !this.settings.autoWidth,
3656                n = this.$stage.children();
3657            if (i && t.items.merge)
3658                for (; e--;) t.css.width = this._widths[this.relative(e)], n.eq(e).css(t.css);
3659            else i && (t.css.width = t.items.width, n.css(t.css))
3660        }
3661    }, {
3662        filter: ["items"],
3663        run: function() {
3664            this._coordinates.length < 1 && this.$stage.removeAttr("style")
3665        }
3666    }, {
3667        filter: ["width", "items", "settings"],
3668        run: function(t) {
3669            t.current = t.current ? this.$stage.children().index(t.current) : 0, t.current = Math.max(this.minimum(), Math.min(this.maximum(), t.current)), this.reset(t.current)
3670        }
3671    }, {
3672        filter: ["position"],
3673        run: function() {
3674            this.animate(this.coordinates(this._current))
3675        }
3676    }, {
3677        filter: ["width", "position", "items", "settings"],
3678        run: function() {
3679            var t, e, i, n, s = this.settings.rtl ? 1 : -1,
3680                o = 2 * this.settings.stagePadding,
3681                r = this.coordinates(this.current()) + o,
3682                a = r + this.width() * s,
3683                l = [];
3684            for (i = 0, n = this._coordinates.length; i < n; i++) t = this._coordinates[i - 1] || 0, e = Math.abs(this._coordinates[i]) + o * s, (this.op(t, "<=", r) && this.op(t, ">", a) || this.op(e, "<", r) && this.op(e, ">", a)) && l.push(i);
3685            this.$stage.children(".active").removeClass("active"), this.$stage.children(":eq(" + l.join("), :eq(") + ")").addClass("active"), this.$stage.children(".center").removeClass("center"), this.settings.center && this.$stage.children().eq(this.current()).addClass("center")
3686        }
3687    }], h.prototype.initializeStage = function() {
3688        this.$stage = this.$element.find("." + this.settings.stageClass), this.$stage.length || (this.$element.addClass(this.options.loadingClass), this.$stage = l("<" + this.settings.stageElement + ">", {
3689            class: this.settings.stageClass
3690        }).wrap(l("<div/>", {
3691            class: this.settings.stageOuterClass
3692        })), this.$element.append(this.$stage.parent()))
3693    }, h.prototype.initializeItems = function() {
3694        var t = this.$element.find(".owl-item");
3695        if (t.length) return this._items = t.get().map(function(t) {
3696            return l(t)
3697        }), this._mergers = this._items.map(function() {
3698            return 1
3699        }), void this.refresh();
3700        this.replace(this.$element.children().not(this.$stage.parent())), this.isVisible() ? this.refresh() : this.invalidate("width"), this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass)
3701    }, h.prototype.initialize = function() {
3702        var t, e, i;
3703        this.enter("initializing"), this.trigger("initialize"), this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl), this.settings.autoWidth && !this.is("pre-loading") && (t = this.$element.find("img"), e = this.settings.nestedItemSelector ? "." + this.settings.nestedItemSelector : a, i = this.$element.children(e).width(), t.length && i <= 0 && this.preloadAutoWidthImages(t));
3704        this.initializeStage(), this.initializeItems(), this.registerEventHandlers(), this.leave("initializing"), this.trigger("initialized")
3705    }, h.prototype.isVisible = function() {
3706        return !this.settings.checkVisibility || this.$element.is(":visible")
3707    }, h.prototype.setup = function() {
3708        var e = this.viewport(),
3709            t = this.options.responsive,
3710            i = -1,
3711            n = null;
3712        t ? (l.each(t, function(t) {
3713            t <= e && i < t && (i = Number(t))
3714        }), "function" == typeof(n = l.extend({}, this.options, t[i])).stagePadding && (n.stagePadding = n.stagePadding()), delete n.responsive, n.responsiveClass && this.$element.attr("class", this.$element.attr("class").replace(new RegExp("(" + this.options.responsiveClass + "-)\\S+\\s", "g"), "$1" + i))) : n = l.extend({}, this.options), this.trigger("change", {
3715            property: {
3716                name: "settings",
3717                value: n
3718            }
3719        }), this._breakpoint = i, this.settings = n, this.invalidate("settings"), this.trigger("changed", {
3720            property: {
3721                name: "settings",
3722                value: this.settings
3723            }
3724        })
3725    }, h.prototype.optionsLogic = function() {
3726        this.settings.autoWidth && (this.settings.stagePadding = !1, this.settings.merge = !1)
3727    }, h.prototype.prepare = function(t) {
3728        var e = this.trigger("prepare", {
3729            content: t
3730        });
3731        return e.data || (e.data = l("<" + this.settings.itemElement + "/>").addClass(this.options.itemClass).append(t)), this.trigger("prepared", {
3732            content: e.data
3733        }), e.data
3734    }, h.prototype.update = function() {
3735        for (var t = 0, e = this._pipe.length, i = l.proxy(function(t) {
3736                return this[t]
3737            }, this._invalidated), n = {}; t < e;)(this._invalidated.all || 0 < l.grep(this._pipe[t].filter, i).length) && this._pipe[t].run(n), t++;
3738        this._invalidated = {}, this.is("valid") || this.enter("valid")
3739    }, h.prototype.width = function(t) {
3740        switch (t = t || h.Width.Default) {
3741            case h.Width.Inner:
3742            case h.Width.Outer:
3743                return this._width;
3744            default:
3745                return this._width - 2 * this.settings.stagePadding + this.settings.margin
3746        }
3747    }, h.prototype.refresh = function() {
3748        this.enter("refreshing"), this.trigger("refresh"), this.setup(), this.optionsLogic(), this.$element.addClass(this.options.refreshClass), this.update(), this.$element.removeClass(this.options.refreshClass), this.leave("refreshing"), this.trigger("refreshed")
3749    }, h.prototype.onThrottledResize = function() {
3750        i.clearTimeout(this.resizeTimer), this.resizeTimer = i.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate)
3751    }, h.prototype.onResize = function() {
3752        return !!this._items.length && this._width !== this.$element.width() && !!this.isVisible() && (this.enter("resizing"), this.trigger("resize").isDefaultPrevented() ? (this.leave("resizing"), !1) : (this.invalidate("width"), this.refresh(), this.leave("resizing"), void this.trigger("resized")))
3753    }, h.prototype.registerEventHandlers = function() {
3754        l.support.transition && this.$stage.on(l.support.transition.end + ".owl.core", l.proxy(this.onTransitionEnd, this)), !1 !== this.settings.responsive && this.on(i, "resize", this._handlers.onThrottledResize), this.settings.mouseDrag && (this.$element.addClass(this.options.dragClass), this.$stage.on("mousedown.owl.core", l.proxy(this.onDragStart, this)), this.$stage.on("dragstart.owl.core selectstart.owl.core", function() {
3755            return !1
3756        })), this.settings.touchDrag && (this.$stage.on("touchstart.owl.core", l.proxy(this.onDragStart, this)), this.$stage.on("touchcancel.owl.core", l.proxy(this.onDragEnd, this)))
3757    }, h.prototype.onDragStart = function(t) {
3758        var e = null;
3759        3 !== t.which && (e = l.support.transform ? {
3760            x: (e = this.$stage.css("transform").replace(/.*\(|\)| /g, "").split(","))[16 === e.length ? 12 : 4],
3761            y: e[16 === e.length ? 13 : 5]
3762        } : (e = this.$stage.position(), {
3763            x: this.settings.rtl ? e.left + this.$stage.width() - this.width() + this.settings.margin : e.left,
3764            y: e.top
3765        }), this.is("animating") && (l.support.transform ? this.animate(e.x) : this.$stage.stop(), this.invalidate("position")), this.$element.toggleClass(this.options.grabClass, "mousedown" === t.type), this.speed(0), this._drag.time = (new Date).getTime(), this._drag.target = l(t.target), this._drag.stage.start = e, this._drag.stage.current = e, this._drag.pointer = this.pointer(t), l(s).on("mouseup.owl.core touchend.owl.core", l.proxy(this.onDragEnd, this)), l(s).one("mousemove.owl.core touchmove.owl.core", l.proxy(function(t) {
3766            var e = this.difference(this._drag.pointer, this.pointer(t));
3767            l(s).on("mousemove.owl.core touchmove.owl.core", l.proxy(this.onDragMove, this)), Math.abs(e.x) < Math.abs(e.y) && this.is("valid") || (t.preventDefault(), this.enter("dragging"), this.trigger("drag"))
3768        }, this)))
3769    }, h.prototype.onDragMove = function(t) {
3770        var e = null,
3771            i = null,
3772            n = null,
3773            s = this.difference(this._drag.pointer, this.pointer(t)),
3774            o = this.difference(this._drag.stage.start, s);
3775        this.is("dragging") && (t.preventDefault(), this.settings.loop ? (e = this.coordinates(this.minimum()), i = this.coordinates(this.maximum() + 1) - e, o.x = ((o.x - e) % i + i) % i + e) : (e = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum()), i = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum()), n = this.settings.pullDrag ? -1 * s.x / 5 : 0, o.x = Math.max(Math.min(o.x, e + n), i + n)), this._drag.stage.current = o, this.animate(o.x))
3776    }, h.prototype.onDragEnd = function(t) {
3777        var e = this.difference(this._drag.pointer, this.pointer(t)),
3778            i = this._drag.stage.current,
3779            n = 0 < e.x ^ this.settings.rtl ? "left" : "right";
3780        l(s).off(".owl.core"), this.$element.removeClass(this.options.grabClass), (0 !== e.x && this.is("dragging") || !this.is("valid")) && (this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed), this.current(this.closest(i.x, 0 !== e.x ? n : this._drag.direction)), this.invalidate("position"), this.update(), this._drag.direction = n, (3 < Math.abs(e.x) || 300 < (new Date).getTime() - this._drag.time) && this._drag.target.one("click.owl.core", function() {
3781            return !1
3782        })), this.is("dragging") && (this.leave("dragging"), this.trigger("dragged"))
3783    }, h.prototype.closest = function(i, n) {
3784        var s = -1,
3785            o = this.width(),
3786            r = this.coordinates();
3787        return this.settings.freeDrag || l.each(r, l.proxy(function(t, e) {
3788            return "left" === n && e - 30 < i && i < e + 30 ? s = t : "right" === n && e - o - 30 < i && i < e - o + 30 ? s = t + 1 : this.op(i, "<", e) && this.op(i, ">", r[t + 1] !== a ? r[t + 1] : e - o) && (s = "left" === n ? t + 1 : t), -1 === s
3789        }, this)), this.settings.loop || (this.op(i, ">", r[this.minimum()]) ? s = i = this.minimum() : this.op(i, "<", r[this.maximum()]) && (s = i = this.maximum())), s
3790    }, h.prototype.animate = function(t) {
3791        var e = 0 < this.speed();
3792        this.is("animating") && this.onTransitionEnd(), e && (this.enter("animating"), this.trigger("translate")), l.support.transform3d && l.support.transition ? this.$stage.css({
3793            transform: "translate3d(" + t + "px,0px,0px)",
3794            transition: this.speed() / 1e3 + "s" + (this.settings.slideTransition ? " " + this.settings.slideTransition : "")
3795        }) : e ? this.$stage.animate({
3796            left: t + "px"
3797        }, this.speed(), this.settings.fallbackEasing, l.proxy(this.onTransitionEnd, this)) : this.$stage.css({
3798            left: t + "px"
3799        })
3800    }, h.prototype.is = function(t) {
3801        return this._states.current[t] && 0 < this._states.current[t]
3802    }, h.prototype.current = function(t) {
3803        if (t === a) return this._current;
3804        if (0 === this._items.length) return a;
3805        if (t = this.normalize(t), this._current !== t) {
3806            var e = this.trigger("change", {
3807                property: {
3808                    name: "position",
3809                    value: t
3810                }
3811            });
3812            e.data !== a && (t = this.normalize(e.data)), this._current = t, this.invalidate("position"), this.trigger("changed", {
3813                property: {
3814                    name: "position",
3815                    value: this._current
3816                }
3817            })
3818        }
3819        return this._current
3820    }, h.prototype.invalidate = function(t) {
3821        return "string" === l.type(t) && (this._invalidated[t] = !0, this.is("valid") && this.leave("valid")), l.map(this._invalidated, function(t, e) {
3822            return e
3823        })
3824    }, h.prototype.reset = function(t) {
3825        (t = this.normalize(t)) !== a && (this._speed = 0, this._current = t, this.suppress(["translate", "translated"]), this.animate(this.coordinates(t)), this.release(["translate", "translated"]))
3826    }, h.prototype.normalize = function(t, e) {
3827        var i = this._items.length,
3828            n = e ? 0 : this._clones.length;
3829        return !this.isNumeric(t) || i < 1 ? t = a : (t < 0 || i + n <= t) && (t = ((t - n / 2) % i + i) % i + n / 2), t
3830    }, h.prototype.relative = function(t) {
3831        return t -= this._clones.length / 2, this.normalize(t, !0)
3832    }, h.prototype.maximum = function(t) {
3833        var e, i, n, s = this.settings,
3834            o = this._coordinates.length;
3835        if (s.loop) o = this._clones.length / 2 + this._items.length - 1;
3836        else if (s.autoWidth || s.merge) {
3837            if (e = this._items.length)
3838                for (i = this._items[--e].width(), n = this.$element.width(); e-- && !((i += this._items[e].width() + this.settings.margin) > n););
3839            o = e + 1
3840        } else o = s.center ? this._items.length - 1 : this._items.length - s.items;
3841        return t && (o -= this._clones.length / 2), Math.max(o, 0)
3842    }, h.prototype.minimum = function(t) {
3843        return t ? 0 : this._clones.length / 2
3844    }, h.prototype.items = function(t) {
3845        return t === a ? this._items.slice() : (t = this.normalize(t, !0), this._items[t])
3846    }, h.prototype.mergers = function(t) {
3847        return t === a ? this._mergers.slice() : (t = this.normalize(t, !0), this._mergers[t])
3848    }, h.prototype.clones = function(i) {
3849        function n(t) {
3850            return t % 2 == 0 ? s + t / 2 : e - (t + 1) / 2
3851        }
3852        var e = this._clones.length / 2,
3853            s = e + this._items.length;
3854        return i === a ? l.map(this._clones, function(t, e) {
3855            return n(e)
3856        }) : l.map(this._clones, function(t, e) {
3857            return t === i ? n(e) : null
3858        })
3859    }, h.prototype.speed = function(t) {
3860        return t !== a && (this._speed = t), this._speed
3861    }, h.prototype.coordinates = function(t) {
3862        var e, i = 1,
3863            n = t - 1;
3864        return t === a ? l.map(this._coordinates, l.proxy(function(t, e) {
3865            return this.coordinates(e)
3866        }, this)) : (this.settings.center ? (this.settings.rtl && (i = -1, n = t + 1), e = this._coordinates[t], e += (this.width() - e + (this._coordinates[n] || 0)) / 2 * i) : e = this._coordinates[n] || 0, e = Math.ceil(e))
3867    }, h.prototype.duration = function(t, e, i) {
3868        return 0 === i ? 0 : Math.min(Math.max(Math.abs(e - t), 1), 6) * Math.abs(i || this.settings.smartSpeed)
3869    }, h.prototype.to = function(t, e) {
3870        var i = this.current(),
3871            n = null,
3872            s = t - this.relative(i),
3873            o = (0 < s) - (s < 0),
3874            r = this._items.length,
3875            a = this.minimum(),
3876            l = this.maximum();
3877        this.settings.loop ? (!this.settings.rewind && Math.abs(s) > r / 2 && (s += -1 * o * r), (n = (((t = i + s) - a) % r + r) % r + a) !== t && n - s <= l && 0 < n - s && (i = n - s, t = n, this.reset(i))) : t = this.settings.rewind ? (t % (l += 1) + l) % l : Math.max(a, Math.min(l, t)), this.speed(this.duration(i, t, e)), this.current(t), this.isVisible() && this.update()
3878    }, h.prototype.next = function(t) {
3879        t = t || !1, this.to(this.relative(this.current()) + 1, t)
3880    }, h.prototype.prev = function(t) {
3881        t = t || !1, this.to(this.relative(this.current()) - 1, t)
3882    }, h.prototype.onTransitionEnd = function(t) {
3883        if (t !== a && (t.stopPropagation(), (t.target || t.srcElement || t.originalTarget) !== this.$stage.get(0))) return !1;
3884        this.leave("animating"), this.trigger("translated")
3885    }, h.prototype.viewport = function() {
3886        var t;
3887        return this.options.responsiveBaseElement !== i ? t = l(this.options.responsiveBaseElement).width() : i.innerWidth ? t = i.innerWidth : s.documentElement && s.documentElement.clientWidth ? t = s.documentElement.clientWidth : console.warn("Can not detect viewport width."), t
3888    }, h.prototype.replace = function(t) {
3889        this.$stage.empty(), this._items = [], t = t && (t instanceof jQuery ? t : l(t)), this.settings.nestedItemSelector && (t = t.find("." + this.settings.nestedItemSelector)), t.filter(function() {
3890            return 1 === this.nodeType
3891        }).each(l.proxy(function(t, e) {
3892            e = this.prepare(e), this.$stage.append(e), this._items.push(e), this._mergers.push(+e.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)
3893        }, this)), this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0), this.invalidate("items")
3894    }, h.prototype.add = function(t, e) {
3895        var i = this.relative(this._current);
3896        e = e === a ? this._items.length : this.normalize(e, !0), t = t instanceof jQuery ? t : l(t), this.trigger("add", {
3897            content: t,
3898            position: e
3899        }), t = this.prepare(t), 0 === this._items.length || e === this._items.length ? (0 === this._items.length && this.$stage.append(t), 0 !== this._items.length && this._items[e - 1].after(t), this._items.push(t), this._mergers.push(+t.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)) : (this._items[e].before(t), this._items.splice(e, 0, t), this._mergers.splice(e, 0, +t.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)), this._items[i] && this.reset(this._items[i].index()), this.invalidate("items"), this.trigger("added", {
3900            content: t,
3901            position: e
3902        })
3903    }, h.prototype.remove = function(t) {
3904        (t = this.normalize(t, !0)) !== a && (this.trigger("remove", {
3905            content: this._items[t],
3906            position: t
3907        }), this._items[t].remove(), this._items.splice(t, 1), this._mergers.splice(t, 1), this.invalidate("items"), this.trigger("removed", {
3908            content: null,
3909            position: t
3910        }))
3911    }, h.prototype.preloadAutoWidthImages = function(t) {
3912        t.each(l.proxy(function(t, e) {
3913            this.enter("pre-loading"), e = l(e), l(new Image).one("load", l.proxy(function(t) {
3914                e.attr("src", t.target.src), e.css("opacity", 1), this.leave("pre-loading"), this.is("pre-loading") || this.is("initializing") || this.refresh()
3915            }, this)).attr("src", e.attr("src") || e.attr("data-src") || e.attr("data-src-retina"))
3916        }, this))
3917    }, h.prototype.destroy = function() {
3918        for (var t in this.$element.off(".owl.core"), this.$stage.off(".owl.core"), l(s).off(".owl.core"), !1 !== this.settings.responsive && (i.clearTimeout(this.resizeTimer), this.off(i, "resize", this._handlers.onThrottledResize)), this._plugins) this._plugins[t].destroy();
3919        this.$stage.children(".cloned").remove(), this.$stage.unwrap(), this.$stage.children().contents().unwrap(), this.$stage.children().unwrap(), this.$stage.remove(), this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class", this.$element.attr("class").replace(new RegExp(this.options.responsiveClass + "-\\S+\\s", "g"), "")).removeData("owl.carousel")
3920    }, h.prototype.op = function(t, e, i) {
3921        var n = this.settings.rtl;
3922        switch (e) {
3923            case "<":
3924                return n ? i < t : t < i;
3925            case ">":
3926                return n ? t < i : i < t;
3927            case ">=":
3928                return n ? t <= i : i <= t;
3929            case "<=":
3930                return n ? i <= t : t <= i
3931        }
3932    }, h.prototype.on = function(t, e, i, n) {
3933        t.addEventListener ? t.addEventListener(e, i, n) : t.attachEvent && t.attachEvent("on" + e, i)
3934    }, h.prototype.off = function(t, e, i, n) {
3935        t.removeEventListener ? t.removeEventListener(e, i, n) : t.detachEvent && t.detachEvent("on" + e, i)
3936    }, h.prototype.trigger = function(t, e, i, n, s) {
3937        var o = {
3938                item: {
3939                    count: this._items.length,
3940                    index: this.current()
3941                }
3942            },
3943            r = l.camelCase(l.grep(["on", t, i], function(t) {
3944                return t
3945            }).join("-").toLowerCase()),
3946            a = l.Event([t, "owl", i || "carousel"].join(".").toLowerCase(), l.extend({
3947                relatedTarget: this
3948            }, o, e));
3949        return this._supress[t] || (l.each(this._plugins, function(t, e) {
3950            e.onTrigger && e.onTrigger(a)
3951        }), this.register({
3952            type: h.Type.Event,
3953            name: t
3954        }), this.$element.trigger(a), this.settings && "function" == typeof this.settings[r] && this.settings[r].call(this, a)), a
3955    }, h.prototype.enter = function(t) {
3956        l.each([t].concat(this._states.tags[t] || []), l.proxy(function(t, e) {
3957            this._states.current[e] === a && (this._states.current[e] = 0), this._states.current[e]++
3958        }, this))
3959    }, h.prototype.leave = function(t) {
3960        l.each([t].concat(this._states.tags[t] || []), l.proxy(function(t, e) {
3961            this._states.current[e]--
3962        }, this))
3963    }, h.prototype.register = function(i) {
3964        if (i.type === h.Type.Event) {
3965            if (l.event.special[i.name] || (l.event.special[i.name] = {}), !l.event.special[i.name].owl) {
3966                var e = l.event.special[i.name]._default;
3967                l.event.special[i.name]._default = function(t) {
3968                    return !e || !e.apply || t.namespace && -1 !== t.namespace.indexOf("owl") ? t.namespace && -1 < t.namespace.indexOf("owl") : e.apply(this, arguments)
3969                }, l.event.special[i.name].owl = !0
3970            }
3971        } else i.type === h.Type.State && (this._states.tags[i.name] ? this._states.tags[i.name] = this._states.tags[i.name].concat(i.tags) : this._states.tags[i.name] = i.tags, this._states.tags[i.name] = l.grep(this._states.tags[i.name], l.proxy(function(t, e) {
3972            return l.inArray(t, this._states.tags[i.name]) === e
3973        }, this)))
3974    }, h.prototype.suppress = function(t) {
3975        l.each(t, l.proxy(function(t, e) {
3976            this._supress[e] = !0
3977        }, this))
3978    }, h.prototype.release = function(t) {
3979        l.each(t, l.proxy(function(t, e) {
3980            delete this._supress[e]
3981        }, this))
3982    }, h.prototype.pointer = function(t) {
3983        var e = {
3984            x: null,
3985            y: null
3986        };
3987        return (t = (t = t.originalEvent || t || i.event).touches && t.touches.length ? t.touches[0] : t.changedTouches && t.changedTouches.length ? t.changedTouches[0] : t).pageX ? (e.x = t.pageX, e.y = t.pageY) : (e.x = t.clientX, e.y = t.clientY), e
3988    }, h.prototype.isNumeric = function(t) {
3989        return !isNaN(parseFloat(t))
3990    }, h.prototype.difference = function(t, e) {
3991        return {
3992            x: t.x - e.x,
3993            y: t.y - e.y
3994        }
3995    }, l.fn.owlCarousel = function(e) {
3996        var n = Array.prototype.slice.call(arguments, 1);
3997        return this.each(function() {
3998            var t = l(this),
3999                i = t.data("owl.carousel");
4000            i || (i = new h(this, "object" == typeof e && e), t.data("owl.carousel", i), l.each(["next", "prev", "to", "destroy", "refresh", "replace", "add", "remove"], function(t, e) {
4001                i.register({
4002                    type: h.Type.Event,
4003                    name: e
4004                }), i.$element.on(e + ".owl.carousel.core", l.proxy(function(t) {
4005                    t.namespace && t.relatedTarget !== this && (this.suppress([e]), i[e].apply(this, [].slice.call(arguments, 1)), this.release([e]))
4006                }, i))
4007            })), "string" == typeof e && "_" !== e.charAt(0) && i[e].apply(i, n)
4008        })
4009    }, l.fn.owlCarousel.Constructor = h
4010}(window.Zepto || window.jQuery, window, document),
4011function(e, i) {
4012    var n = function(t) {
4013        this._core = t, this._interval = null, this._visible = null, this._handlers = {
4014            "initialized.owl.carousel": e.proxy(function(t) {
4015                t.namespace && this._core.settings.autoRefresh && this.watch()
4016            }, this)
4017        }, this._core.options = e.extend({}, n.Defaults, this._core.options), this._core.$element.on(this._handlers)
4018    };
4019    n.Defaults = {
4020        autoRefresh: !0,
4021        autoRefreshInterval: 500
4022    }, n.prototype.watch = function() {
4023        this._interval || (this._visible = this._core.isVisible(), this._interval = i.setInterval(e.proxy(this.refresh, this), this._core.settings.autoRefreshInterval))
4024    }, n.prototype.refresh = function() {
4025        this._core.isVisible() !== this._visible && (this._visible = !this._visible, this._core.$element.toggleClass("owl-hidden", !this._visible), this._visible && this._core.invalidate("width") && this._core.refresh())
4026    }, n.prototype.destroy = function() {
4027        var t, e;
4028        for (t in i.clearInterval(this._interval), this._handlers) this._core.$element.off(t, this._handlers[t]);
4029        for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null)
4030    }, e.fn.owlCarousel.Constructor.Plugins.AutoRefresh = n
4031}(window.Zepto || window.jQuery, window, document),
4032function(a, o) {
4033    var e = function(t) {
4034        this._core = t, this._loaded = [], this._handlers = {
4035            "initialized.owl.carousel change.owl.carousel resized.owl.carousel": a.proxy(function(t) {
4036                if (t.namespace && this._core.settings && this._core.settings.lazyLoad && (t.property && "position" == t.property.name || "initialized" == t.type)) {
4037                    var e = this._core.settings,
4038                        i = e.center && Math.ceil(e.items / 2) || e.items,
4039                        n = e.center && -1 * i || 0,
4040                        s = (t.property && void 0 !== t.property.value ? t.property.value : this._core.current()) + n,
4041                        o = this._core.clones().length,
4042                        r = a.proxy(function(t, e) {
4043                            this.load(e)
4044                        }, this);
4045                    for (0 < e.lazyLoadEager && (i += e.lazyLoadEager, e.loop && (s -= e.lazyLoadEager, i++)); n++ < i;) this.load(o / 2 + this._core.relative(s)), o && a.each(this._core.clones(this._core.relative(s)), r), s++
4046                }
4047            }, this)
4048        }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers)
4049    };
4050    e.Defaults = {
4051        lazyLoad: !1,
4052        lazyLoadEager: 0
4053    }, e.prototype.load = function(t) {
4054        var e = this._core.$stage.children().eq(t),
4055            i = e && e.find(".owl-lazy");
4056        !i || -1 < a.inArray(e.get(0), this._loaded) || (i.each(a.proxy(function(t, e) {
4057            var i, n = a(e),
4058                s = 1 < o.devicePixelRatio && n.attr("data-src-retina") || n.attr("data-src") || n.attr("data-srcset");
4059            this._core.trigger("load", {
4060                element: n,
4061                url: s
4062            }, "lazy"), n.is("img") ? n.one("load.owl.lazy", a.proxy(function() {
4063                n.css("opacity", 1), this._core.trigger("loaded", {
4064                    element: n,
4065                    url: s
4066                }, "lazy")
4067            }, this)).attr("src", s) : n.is("source") ? n.one("load.owl.lazy", a.proxy(function() {
4068                this._core.trigger("loaded", {
4069                    element: n,
4070                    url: s
4071                }, "lazy")
4072            }, this)).attr("srcset", s) : ((i = new Image).onload = a.proxy(function() {
4073                n.css({
4074                    "background-image": 'url("' + s + '")',
4075                    opacity: "1"
4076                }), this._core.trigger("loaded", {
4077                    element: n,
4078                    url: s
4079                }, "lazy")
4080            }, this), i.src = s)
4081        }, this)), this._loaded.push(e.get(0)))
4082    }, e.prototype.destroy = function() {
4083        var t, e;
4084        for (t in this.handlers) this._core.$element.off(t, this.handlers[t]);
4085        for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null)
4086    }, a.fn.owlCarousel.Constructor.Plugins.Lazy = e
4087}(window.Zepto || window.jQuery, window, document),
4088function(r, i) {
4089    var n = function(t) {
4090        this._core = t, this._previousHeight = null, this._handlers = {
4091            "initialized.owl.carousel refreshed.owl.carousel": r.proxy(function(t) {
4092                t.namespace && this._core.settings.autoHeight && this.update()
4093            }, this),
4094            "changed.owl.carousel": r.proxy(function(t) {
4095                t.namespace && this._core.settings.autoHeight && "position" === t.property.name && this.update()
4096            }, this),
4097            "loaded.owl.lazy": r.proxy(function(t) {
4098                t.namespace && this._core.settings.autoHeight && t.element.closest("." + this._core.settings.itemClass).index() === this._core.current() && this.update()
4099            }, this)
4100        }, this._core.options = r.extend({}, n.Defaults, this._core.options), this._core.$element.on(this._handlers), this._intervalId = null;
4101        var e = this;
4102        r(i).on("load", function() {
4103            e._core.settings.autoHeight && e.update()
4104        }), r(i).resize(function() {
4105            e._core.settings.autoHeight && (null != e._intervalId && clearTimeout(e._intervalId), e._intervalId = setTimeout(function() {
4106                e.update()
4107            }, 250))
4108        })
4109    };
4110    n.Defaults = {
4111        autoHeight: !1,
4112        autoHeightClass: "owl-height"
4113    }, n.prototype.update = function() {
4114        var t = this._core._current,
4115            e = t + this._core.settings.items,
4116            i = this._core.settings.lazyLoad,
4117            n = this._core.$stage.children().toArray().slice(t, e),
4118            s = [],
4119            o = 0;
4120        r.each(n, function(t, e) {
4121            s.push(r(e).height())
4122        }), (o = Math.max.apply(null, s)) <= 1 && i && this._previousHeight && (o = this._previousHeight), this._previousHeight = o, this._core.$stage.parent().height(o).addClass(this._core.settings.autoHeightClass)
4123    }, n.prototype.destroy = function() {
4124        var t, e;
4125        for (t in this._handlers) this._core.$element.off(t, this._handlers[t]);
4126        for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null)
4127    }, r.fn.owlCarousel.Constructor.Plugins.AutoHeight = n
4128}(window.Zepto || window.jQuery, window, document),
4129function(c, e) {
4130    var i = function(t) {
4131        this._core = t, this._videos = {}, this._playing = null, this._handlers = {
4132            "initialized.owl.carousel": c.proxy(function(t) {
4133                t.namespace && this._core.register({
4134                    type: "state",
4135                    name: "playing",
4136                    tags: ["interacting"]
4137                })
4138            }, this),
4139            "resize.owl.carousel": c.proxy(function(t) {
4140                t.namespace && this._core.settings.video && this.isInFullScreen() && t.preventDefault()
4141            }, this),
4142            "refreshed.owl.carousel": c.proxy(function(t) {
4143                t.namespace && this._core.is("resizing") && this._core.$stage.find(".cloned .owl-video-frame").remove()
4144            }, this),
4145            "changed.owl.carousel": c.proxy(function(t) {
4146                t.namespace && "position" === t.property.name && this._playing && this.stop()
4147            }, this),
4148            "prepared.owl.carousel": c.proxy(function(t) {
4149                if (t.namespace) {
4150                    var e = c(t.content).find(".owl-video");
4151                    e.length && (e.css("display", "none"), this.fetch(e, c(t.content)))
4152                }
4153            }, this)
4154        }, this._core.options = c.extend({}, i.Defaults, this._core.options), this._core.$element.on(this._handlers), this._core.$element.on("click.owl.video", ".owl-video-play-icon", c.proxy(function(t) {
4155            this.play(t)
4156        }, this))
4157    };
4158    i.Defaults = {
4159        video: !1,
4160        videoHeight: !1,
4161        videoWidth: !1
4162    }, i.prototype.fetch = function(t, e) {
4163        var i = t.attr("data-vimeo-id") ? "vimeo" : t.attr("data-vzaar-id") ? "vzaar" : "youtube",
4164            n = t.attr("data-vimeo-id") || t.attr("data-youtube-id") || t.attr("data-vzaar-id"),
4165            s = t.attr("data-width") || this._core.settings.videoWidth,
4166            o = t.attr("data-height") || this._core.settings.videoHeight,
4167            r = t.attr("href");
4168        if (!r) throw new Error("Missing video URL.");
4169        if (-1 < (n = r.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/))[3].indexOf("youtu")) i = "youtube";
4170        else if (-1 < n[3].indexOf("vimeo")) i = "vimeo";
4171        else {
4172            if (!(-1 < n[3].indexOf("vzaar"))) throw new Error("Video URL not supported.");
4173            i = "vzaar"
4174        }
4175        n = n[6], this._videos[r] = {
4176            type: i,
4177            id: n,
4178            width: s,
4179            height: o
4180        }, e.attr("data-video", r), this.thumbnail(t, this._videos[r])
4181    }, i.prototype.thumbnail = function(e, t) {
4182        function i(t) {
4183            n = h.lazyLoad ? c("<div/>", {
4184                class: "owl-video-tn " + l,
4185                srcType: t
4186            }) : c("<div/>", {
4187                class: "owl-video-tn",
4188                style: "opacity:1;background-image:url(" + t + ")"
4189            }), e.after(n), e.after('<div class="owl-video-play-icon"></div>')
4190        }
vendor: 7,329 bytes, lines 4191-4308
4191        var n, s, o = t.width && t.height ? "width:" + t.width + "px;height:" + t.height + "px;" : "",
4192            r = e.find("img"),
4193            a = "src",
4194            l = "",
4195            h = this._core.settings;
4196        if (e.wrap(c("<div/>", {
4197                class: "owl-video-wrapper",
4198                style: o
4199            })), this._core.settings.lazyLoad && (a = "data-src", l = "owl-lazy"), r.length) return i(r.attr(a)), r.remove(), !1;
4200        "youtube" === t.type ? (s = "//img.youtube.com/vi/" + t.id + "/hqdefault.jpg", i(s)) : "vimeo" === t.type ? c.ajax({
4201            type: "GET",
4202            url: "//vimeo.com/api/v2/video/" + t.id + ".json",
4203            jsonp: "callback",
4204            dataType: "jsonp",
4205            success: function(t) {
4206                s = t[0].thumbnail_large, i(s)
4207            }
4208        }) : "vzaar" === t.type && c.ajax({
4209            type: "GET",
4210            url: "//vzaar.com/api/videos/" + t.id + ".json",
4211            jsonp: "callback",
4212            dataType: "jsonp",
4213            success: function(t) {
4214                s = t.framegrab_url, i(s)
4215            }
4216        })
4217    }, i.prototype.stop = function() {
4218        this._core.trigger("stop", null, "video"), this._playing.find(".owl-video-frame").remove(), this._playing.removeClass("owl-video-playing"), this._playing = null, this._core.leave("playing"), this._core.trigger("stopped", null, "video")
4219    }, i.prototype.play = function(t) {
4220        var e, i = c(t.target).closest("." + this._core.settings.itemClass),
4221            n = this._videos[i.attr("data-video")],
4222            s = n.width || "100%",
4223            o = n.height || this._core.$stage.height();
4224        this._playing || (this._core.enter("playing"), this._core.trigger("play", null, "video"), i = this._core.items(this._core.relative(i.index())), this._core.reset(i.index()), (e = c('<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>')).attr("height", o), e.attr("width", s), "youtube" === n.type ? e.attr("src", "//www.youtube.com/embed/" + n.id + "?autoplay=1&rel=0&v=" + n.id) : "vimeo" === n.type ? e.attr("src", "//player.vimeo.com/video/" + n.id + "?autoplay=1") : "vzaar" === n.type && e.attr("src", "//view.vzaar.com/" + n.id + "/player?autoplay=true"), c(e).wrap('<div class="owl-video-frame" />').insertAfter(i.find(".owl-video")), this._playing = i.addClass("owl-video-playing"))
4225    }, i.prototype.isInFullScreen = function() {
4226        var t = e.fullscreenElement || e.mozFullScreenElement || e.webkitFullscreenElement;
4227        return t && c(t).parent().hasClass("owl-video-frame")
4228    }, i.prototype.destroy = function() {
4229        var t, e;
4230        for (t in this._core.$element.off("click.owl.video"), this._handlers) this._core.$element.off(t, this._handlers[t]);
4231        for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null)
4232    }, c.fn.owlCarousel.Constructor.Plugins.Video = i
4233}(window.Zepto || window.jQuery, (window, document)),
4234function(r) {
4235    var e = function(t) {
4236        this.core = t, this.core.options = r.extend({}, e.Defaults, this.core.options), this.swapping = !0, this.previous = void 0, this.next = void 0, this.handlers = {
4237            "change.owl.carousel": r.proxy(function(t) {
4238                t.namespace && "position" == t.property.name && (this.previous = this.core.current(), this.next = t.property.value)
4239            }, this),
4240            "drag.owl.carousel dragged.owl.carousel translated.owl.carousel": r.proxy(function(t) {
4241                t.namespace && (this.swapping = "translated" == t.type)
4242            }, this),
4243            "translate.owl.carousel": r.proxy(function(t) {
4244                t.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn) && this.swap()
4245            }, this)
4246        }, this.core.$element.on(this.handlers)
4247    };
4248    e.Defaults = {
4249        animateOut: !1,
4250        animateIn: !1
4251    }, e.prototype.swap = function() {
4252        if (1 === this.core.settings.items && r.support.animation && r.support.transition) {
4253            this.core.speed(0);
4254            var t, e = r.proxy(this.clear, this),
4255                i = this.core.$stage.children().eq(this.previous),
4256                n = this.core.$stage.children().eq(this.next),
4257                s = this.core.settings.animateIn,
4258                o = this.core.settings.animateOut;
4259            this.core.current() !== this.previous && (o && (t = this.core.coordinates(this.previous) - this.core.coordinates(this.next), i.one(r.support.animation.end, e).css({
4260                left: t + "px"
4261            }).addClass("animated owl-animated-out").addClass(o)), s && n.one(r.support.animation.end, e).addClass("animated owl-animated-in").addClass(s))
4262        }
4263    }, e.prototype.clear = function(t) {
4264        r(t.target).css({
4265            left: ""
4266        }).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut), this.core.onTransitionEnd()
4267    }, e.prototype.destroy = function() {
4268        var t, e;
4269        for (t in this.handlers) this.core.$element.off(t, this.handlers[t]);
4270        for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null)
4271    }, r.fn.owlCarousel.Constructor.Plugins.Animate = e
4272}(window.Zepto || window.jQuery, (window, document)),
4273function(n, s, e) {
4274    var i = function(t) {
4275        this._core = t, this._call = null, this._time = 0, this._timeout = 0, this._paused = !0, this._handlers = {
4276            "changed.owl.carousel": n.proxy(function(t) {
4277                t.namespace && "settings" === t.property.name ? this._core.settings.autoplay ? this.play() : this.stop() : t.namespace && "position" === t.property.name && this._paused && (this._time = 0)
4278            }, this),
4279            "initialized.owl.carousel": n.proxy(function(t) {
4280                t.namespace && this._core.settings.autoplay && this.play()
4281            }, this),
4282            "play.owl.autoplay": n.proxy(function(t, e, i) {
4283                t.namespace && this.play(e, i)
4284            }, this),
4285            "stop.owl.autoplay": n.proxy(function(t) {
4286                t.namespace && this.stop()
4287            }, this),
4288            "mouseover.owl.autoplay": n.proxy(function() {
4289                this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause()
4290            }, this),
4291            "mouseleave.owl.autoplay": n.proxy(function() {
4292                this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.play()
4293            }, this),
4294            "touchstart.owl.core": n.proxy(function() {
4295                this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause()
4296            }, this),
4297            "touchend.owl.core": n.proxy(function() {
4298                this._core.settings.autoplayHoverPause && this.play()
4299            }, this)
4300        }, this._core.$element.on(this._handlers), this._core.options = n.extend({}, i.Defaults, this._core.options)
4301    };
4302    i.Defaults = {
4303        autoplay: !1,
4304        autoplayTimeout: 5e3,
4305        autoplayHoverPause: !1,
4306        autoplaySpeed: !1
4307    }, i.prototype._next = function(t) {
4308        this._call = s.setTimeout(n.proxy(this._next, this, t), this._timeout * (Math.round(this.read() / this._timeout) + 1) 
vendor: 8,278 bytes, lines 4308-4421
4308- this.read()), this._core.is("interacting") || e.hidden || this._core.next(t || this._core.settings.autoplaySpeed)
4309    }, i.prototype.read = function() {
4310        return (new Date).getTime() - this._time
4311    }, i.prototype.play = function(t, e) {
4312        var i;
4313        this._core.is("rotating") || this._core.enter("rotating"), t = t || this._core.settings.autoplayTimeout, i = Math.min(this._time % (this._timeout || t), t), this._paused ? (this._time = this.read(), this._paused = !1) : s.clearTimeout(this._call), this._time += this.read() % t - i, this._timeout = t, this._call = s.setTimeout(n.proxy(this._next, this, e), t - i)
4314    }, i.prototype.stop = function() {
4315        this._core.is("rotating") && (this._time = 0, this._paused = !0, s.clearTimeout(this._call), this._core.leave("rotating"))
4316    }, i.prototype.pause = function() {
4317        this._core.is("rotating") && !this._paused && (this._time = this.read(), this._paused = !0, s.clearTimeout(this._call))
4318    }, i.prototype.destroy = function() {
4319        var t, e;
4320        for (t in this.stop(), this._handlers) this._core.$element.off(t, this._handlers[t]);
4321        for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null)
4322    }, n.fn.owlCarousel.Constructor.Plugins.autoplay = i
4323}(window.Zepto || window.jQuery, window, document),
4324function(o) {
4325    "use strict";
4326    var e = function(t) {
4327        this._core = t, this._initialized = !1, this._pages = [], this._controls = {}, this._templates = [], this.$element = this._core.$element, this._overrides = {
4328            next: this._core.next,
4329            prev: this._core.prev,
4330            to: this._core.to
4331        }, this._handlers = {
4332            "prepared.owl.carousel": o.proxy(function(t) {
4333                t.namespace && this._core.settings.dotsData && this._templates.push('<div class="' + this._core.settings.dotClass + '">' + o(t.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot") + "</div>")
4334            }, this),
4335            "added.owl.carousel": o.proxy(function(t) {
4336                t.namespace && this._core.settings.dotsData && this._templates.splice(t.position, 0, this._templates.pop())
4337            }, this),
4338            "remove.owl.carousel": o.proxy(function(t) {
4339                t.namespace && this._core.settings.dotsData && this._templates.splice(t.position, 1)
4340            }, this),
4341            "changed.owl.carousel": o.proxy(function(t) {
4342                t.namespace && "position" == t.property.name && this.draw()
4343            }, this),
4344            "initialized.owl.carousel": o.proxy(function(t) {
4345                t.namespace && !this._initialized && (this._core.trigger("initialize", null, "navigation"), this.initialize(), this.update(), this.draw(), this._initialized = !0, this._core.trigger("initialized", null, "navigation"))
4346            }, this),
4347            "refreshed.owl.carousel": o.proxy(function(t) {
4348                t.namespace && this._initialized && (this._core.trigger("refresh", null, "navigation"), this.update(), this.draw(), this._core.trigger("refreshed", null, "navigation"))
4349            }, this)
4350        }, this._core.options = o.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers)
4351    };
4352    e.Defaults = {
4353        nav: !1,
4354        navText: ['<span aria-label="Previous">&#x2039;</span>', '<span aria-label="Next">&#x203a;</span>'],
4355        navSpeed: !1,
4356        navElement: 'button type="button" role="presentation"',
4357        navContainer: !1,
4358        navContainerClass: "owl-nav",
4359        navClass: ["owl-prev", "owl-next"],
4360        slideBy: 1,
4361        dotClass: "owl-dot",
4362        dotsClass: "owl-dots",
4363        dots: !0,
4364        dotsEach: !1,
4365        dotsData: !1,
4366        dotsSpeed: !1,
4367        dotsContainer: !1
4368    }, e.prototype.initialize = function() {
4369        var t, i = this._core.settings;
4370        for (t in this._controls.$relative = (i.navContainer ? o(i.navContainer) : o("<div>").addClass(i.navContainerClass).appendTo(this.$element)).addClass("disabled"), this._controls.$previous = o("<" + i.navElement + ">").addClass(i.navClass[0]).html(i.navText[0]).prependTo(this._controls.$relative).on("click", o.proxy(function(t) {
4371                this.prev(i.navSpeed)
4372            }, this)), this._controls.$next = o("<" + i.navElement + ">").addClass(i.navClass[1]).html(i.navText[1]).appendTo(this._controls.$relative).on("click", o.proxy(function(t) {
4373                this.next(i.navSpeed)
4374            }, this)), i.dotsData || (this._templates = [o('<button role="button">').addClass(i.dotClass).append(o("<span>")).prop("outerHTML")]), this._controls.$absolute = (i.dotsContainer ? o(i.dotsContainer) : o("<div>").addClass(i.dotsClass).appendTo(this.$element)).addClass("disabled"), this._controls.$absolute.on("click", "button", o.proxy(function(t) {
4375                var e = o(t.target).parent().is(this._controls.$absolute) ? o(t.target).index() : o(t.target).parent().index();
4376                t.preventDefault(), this.to(e, i.dotsSpeed)
4377            }, this)), this._overrides) this._core[t] = o.proxy(this[t], this)
4378    }, e.prototype.destroy = function() {
4379        var t, e, i, n, s;
4380        for (t in s = this._core.settings, this._handlers) this.$element.off(t, this._handlers[t]);
4381        for (e in this._controls) "$relative" === e && s.navContainer ? this._controls[e].html("") : this._controls[e].remove();
4382        for (n in this.overides) this._core[n] = this._overrides[n];
4383        for (i in Object.getOwnPropertyNames(this)) "function" != typeof this[i] && (this[i] = null)
4384    }, e.prototype.update = function() {
4385        var t, e, i = this._core.clones().length / 2,
4386            n = i + this._core.items().length,
4387            s = this._core.maximum(!0),
4388            o = this._core.settings,
4389            r = o.center || o.autoWidth || o.dotsData ? 1 : o.dotsEach || o.items;
4390        if ("page" !== o.slideBy && (o.slideBy = Math.min(o.slideBy, o.items)), o.dots || "page" == o.slideBy)
4391            for (this._pages = [], t = i, e = 0; t < n; t++) {
4392                if (r <= e || 0 === e) {
4393                    if (this._pages.push({
4394                            start: Math.min(s, t - i),
4395                            end: t - i + r - 1
4396                        }), Math.min(s, t - i) === s) break;
4397                    e = 0, 0
4398                }
4399                e += this._core.mergers(this._core.relative(t))
4400            }
4401    }, e.prototype.draw = function() {
4402        var t, e = this._core.settings,
4403            i = this._core.items().length <= e.items,
4404            n = this._core.relative(this._core.current()),
4405            s = e.loop || e.rewind;
4406        this._controls.$relative.toggleClass("disabled", !e.nav || i), e.nav && (this._controls.$previous.toggleClass("disabled", !s && n <= this._core.minimum(!0)), this._controls.$next.toggleClass("disabled", !s && n >= this._core.maximum(!0))), this._controls.$absolute.toggleClass("disabled", !e.dots || i), e.dots && (t = this._pages.length - this._controls.$absolute.children().length, e.dotsData && 0 != t ? this._controls.$absolute.html(this._templates.join("")) : 0 < t ? this._controls.$absolute.append(new Array(1 + t).join(this._templates[0])) : t < 0 && this._controls.$absolute.children().slice(t).remove(), this._controls.$absolute.find(".active").removeClass("active"), this._controls.$absolute.children().eq(o.inArray(this.current(), this._pages)).addClass("active"))
4407    }, e.prototype.onTrigger = function(t) {
4408        var e = this._core.settings;
4409        t.page = {
4410            index: o.inArray(this.current(), this._pages),
4411            count: this._pages.length,
4412            size: e && (e.center || e.autoWidth || e.dotsData ? 1 : e.dotsEach || e.items)
4413        }
4414    }, e.prototype.current = function() {
4415        var i = this._core.relative(this._core.current());
4416        return o.grep(this._pages, o.proxy(function(t, e) {
4417            return t.start <= i && t.end >= i
4418        }, this)).pop()
4419    }, e.prototype.getPosition = function(t) {
4420        var e, i, n = this._core.settings;
4421        return "page" == n.slideBy ? (e = o.inArray(this.current(), this._pages), i = this._pages.length, t ? ++e : --e, e = this._pages[(e % i + i) % i].start) : (e = this._core.relative(this._core.current()), i = this._core.items().length, t ? e 
4421+= n.slideBy : e -= n.slideBy), e
4422    }, e.prototype.next = function(t) {
4423        o.proxy(this._overrides.to, this._core)(this.getPosition(!0), t)
4424    }, e.prototype.prev = function(t) {
4425        o.proxy(this._overrides.to, this._core)(this.getPosition(!1), t)
4426    }, e.prototype.to = function(t, e, i) {
4427        var n;
4428        !i && this._pages.length ? (n = this._pages.length, o.proxy(this._overrides.to, this._core)(this._pages[(t % n + n) % n].start, e)) : o.proxy(this._overrides.to, this._core)(t, e)
4429    }, o.fn.owlCarousel.Constructor.Plugins.Navigation = e
4430}(window.Zepto || window.jQuery, (window, document)),
4431function(n, s) {
4432    "use strict";
4433    var e = function(t) {
4434        this._core = t, this._hashes = {}, this.$element = this._core.$element, this._handlers = {
4435            "initialized.owl.carousel": n.proxy(function(t) {
4436                t.namespace && "URLHash" === this._core.settings.startPosition && n(s).trigger("hashchange.owl.navigation")
4437            }, this),
4438            "prepared.owl.carousel": n.proxy(function(t) {
4439                if (t.namespace) {
4440                    var e = n(t.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");
4441                    if (!e) return;
4442                    this._hashes[e] = t.content
4443                }
4444            }, this),
4445            "changed.owl.carousel": n.proxy(function(t) {
4446                if (t.namespace && "position" === t.property.name) {
4447                    var i = this._core.items(this._core.relative(this._core.current())),
4448                        e = n.map(this._hashes, function(t, e) {
4449                            return t === i ? e : null
4450                        }).join();
4451                    if (!e || s.location.hash.slice(1) === e) return;
4452                    s.location.hash = e
4453                }
4454            }, this)
4455        }, this._core.options = n.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers), n(s).on("hashchange.owl.navigation", n.proxy(function(t) {
4456            var e = s.location.hash.substring(1),
4457                i = this._core.$stage.children(),
4458                n = this._hashes[e] && i.index(this._hashes[e]);
4459            void 0 !== n && n !== this._core.current() && this._core.to(this._core.relative(n), !1, !0)
4460        }, this))
4461    };
4462    e.Defaults = {
4463        URLhashListener: !1
4464    }, e.prototype.destroy = function() {
4465        var t, e;
4466        for (t in n(s).off("hashchange.owl.navigation"), this._handlers) this._core.$element.off(t, this._handlers[t]);
4467        for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null)
4468    }, n.fn.owlCarousel.Constructor.Plugins.Hash = e
4469}(window.Zepto || window.jQuery, window, document),
4470function(s, o) {
4471    function e(t, i) {
4472        var n = !1,
4473            e = t.charAt(0).toUpperCase() + t.slice(1);
4474        return s.each((t + " " + a.join(e + " ") + e).split(" "), function(t, e) {
4475            if (r[e] !== o) return n = !i || e, !1
4476        }), n
4477    }
4478
4479    function t(t) {
4480        return e(t, !0)
4481    }
4482    var r = s("<support>").get(0).style,
4483        a = "Webkit Moz O ms".split(" "),
4484        i = {
4485            transition: {
4486                end: {
4487                    WebkitTransition: "webkitTransitionEnd",
4488                    MozTransition: "transitionend",
4489                    OTransition: "oTransitionEnd",
4490                    transition: "transitionend"
4491                }
4492            },
4493            animation: {
4494                end: {
4495                    WebkitAnimation: "webkitAnimationEnd",
4496                    MozAnimation: "animationend",
4497                    OAnimation: "oAnimationEnd",
4498                    animation: "animationend"
4499                }
4500            }
4501        },
4502        n = function() {
4503            return !!e("transform")
4504        },
4505        l = function() {
4506            return !!e("perspective")
4507        },
4508        h = function() {
4509            return !!e("animation")
4510        };
4511    ! function() {
4512        return !!e("transition")
4513    }() || (s.support.transition = new String(t("transition")), s.support.transition.end = i.transition.end[s.support.transition]), h() && (s.support.animation = new String(t("animation")), s.support.animation.end = i.animation.end[s.support.animation]), n() && (s.support.transform = new String(t("transform")), s.support.transform3d = l())
4514}(window.Zepto || window.jQuery, (window, void document)),
4515function(n) {
4516    "use strict";
4517    var e = function(t) {
4518        this.owl = t, this._thumbcontent = [], this._identifier = 0, this.owl_currentitem = this.owl.options.startPosition, this.$element = this.owl.$element, this._handlers = {
4519            "prepared.owl.carousel": n.proxy(function(t) {
4520                if (!t.namespace || !this.owl.options.thumbs || this.owl.options.thumbImage || this.owl.options.thumbsPrerendered || this.owl.options.thumbImage) {
4521                    if (t.namespace && this.owl.options.thumbs && this.owl.options.thumbImage) {
4522                        var e = n(t.content).find("img");
4523                        this._thumbcontent.push(e)
4524                    }
4525                } else void 0 !== n(t.content).find("[data-thumb]").attr("data-thumb") && this._thumbcontent.push(n(t.content).find("[data-thumb]").attr("data-thumb"))
4526            }, this),
4527            "initialized.owl.carousel": n.proxy(function(t) {
4528                t.namespace && this.owl.options.thumbs && (this.render(), this.listen(), this._identifier = this.owl.$element.data("slider-id"), this.setActive())
4529            }, this),
4530            "changed.owl.carousel": n.proxy(function(t) {
4531                t.namespace && "position" === t.property.name && this.owl.options.thumbs && (this._identifier = this.owl.$element.data("slider-id"), this.setActive())
4532            }, this)
4533        }, this.owl.options = n.extend({}, e.Defaults, this.owl.options), this.owl.$element.on(this._handlers)
4534    };
4535    e.Defaults = {
4536        thumbs: !0,
4537        thumbImage: !1,
4538        thumbContainerClass: "owl-thumbs",
4539        thumbItemClass: "owl-thumb-item",
4540        moveThumbsInside: !1
4541    }, e.prototype.listen = function() {
4542        var i = this.owl.options;
4543        i.thumbsPrerendered && (this._thumbcontent._thumbcontainer = n("." + i.thumbContainerClass)), n(this._thumbcontent._thumbcontainer).on("click", this._thumbcontent._thumbcontainer.children(), n.proxy(function(t) {
4544            this._identifier = n(t.target).closest("." + i.thumbContainerClass).data("slider-id");
4545            var e = n(t.target).parent().is(this._thumbcontent._thumbcontainer) ? n(t.target).index() : n(t.target).closest("." + i.thumbItemClass).index();
4546            i.thumbsPrerendered ? n("[data-slider-id=" + this._identifier + "]").trigger("to.owl.carousel", [e, i.dotsSpeed, !0]) : this.owl.to(e, i.dotsSpeed), t.preventDefault()
4547        }, this))
4548    }, e.prototype.render = function() {
4549        var t, e = this.owl.options;
4550        if (e.thumbsPrerendered ? (this._thumbcontent._thumbcontainer = n("." + e.thumbContainerClass), e.moveThumbsInside && this._thumbcontent._thumbcontainer.appendTo(this.$element)) : this._thumbcontent._thumbcontainer = n("<div>").addClass(e.thumbContainerClass).appendTo(this.$element), e.thumbImage)
4551            for (t = 0; t < this._thumbcontent.length; ++t) this._thumbcontent._thumbcontainer.append("<button class=" + e.thumbItemClass + '><img src="' + this._thumbcontent[t].attr("src") + '" alt="' + this._thumbcontent[t].attr("alt") + '" /></button>');
4552        else
4553            for (t = 0; t < this._thumbcontent.length; ++t) this._thumbcontent._thumbcontainer.append("<button class=" + e.thumbItemClass + ">" + this._thumbcontent[t] + "</button>")
4554    }, e.prototype.setActive = function() {
4555        this.owl_currentitem = this.owl._current - this.owl._clones.length / 2, this.owl_currentitem === this.owl._items.length && (this.owl_currentitem = 0);
4556        var t = this.owl.options,
4557            e = t.thumbsPrerendered ? n("." + t.thumbContainerClass + '[data-slider-id="' + this._identifier + '"]') : this._thumbcontent._thumbcontainer;
4558        e.children().filter(".active").removeClass("active"), e.children().eq(this.owl_currentitem).addClass("active")
4559    }, e.prototype.destroy = function() {
4560        var t, e;
4561        for (t in this._handlers) this.owl.$element.off(t, this._handlers[t]);
4562        for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null)
4563    }, n.fn.owlCarousel.Constructor.Plugins.Thumbs = e
4564}(window.Zepto || window.jQuery, (window, document)),
4565function(t, e) {
4566    "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : t.Popper = e()
4567}(this, function() {
4568    "use strict";
4569
4570    function o(t) {
4571        return t && "[object Function]" === {}.toString.call(t)
4572    }
4573
4574    function _(t, e) {
4575        if (1 !== t.nodeType) return [];
4576        var i = window.getComputedStyle(t, null);
4577        return e ? i[e] : i
4578    }
4579
4580    function y(t) {
4581        return "HTML" === t.nodeName ? t : t.parentNode || t.host
4582    }
4583
4584    function w(t) {
4585        if (!t || -1 !== ["HTML", "BODY", "#document"].indexOf(t.nodeName)) return window.document.body;
4586        var e = _(t),
4587            i = e.overflow,
4588            n = e.overflowX,
4589            s = e.overflowY;
4590        return /(auto|scroll)/.test(i + s + n) ? t : w(y(t))
4591    }
4592
4593    function b(t) {
4594        var e = t && t.offsetParent,
4595            i = e && e.nodeName;
4596        return i && "BODY" !== i && "HTML" !== i ? -1 !== ["TD", "TABLE"].indexOf(e.nodeName) && "static" === _(e, "position") ? b(e) : e : window.document.documentElement
4597    }
4598
4599    function c(t) {
4600        return null === t.parentNode ? t : c(t.parentNode)
4601    }
4602
4603    function C(t, e) {
4604        if (!(t && t.nodeType && e && e.nodeType)) return window.document.documentElement;
4605        var i = t.compareDocumentPosition(e) & Node.DOCUMENT_POSITION_FOLLOWING,
4606            n = i ? t : e,
4607            s = i ? e : t,
4608            o = document.createRange();
4609        o.setStart(n, 0), o.setEnd(s, 0);
4610        var r, a, l = o.commonAncestorContainer;
4611        if (t !== l && e !== l || n.contains(s)) return "BODY" === (a = (r = l).nodeName) || "HTML" !== a && b(r.firstElementChild) !== r ? b(l) : l;
4612        var h = c(t);
4613        return h.host ? C(h.host, e) : C(t, c(e).host)
4614    }
4615
4616    function E(t, e) {
4617        var i = "top" === (1 < arguments.length && void 0 !== e ? e : "top") ? "scrollTop" : "scrollLeft",
4618            n = t.nodeName;
4619        if ("BODY" !== n && "HTML" !== n) return t[i];
4620        var s = window.document.documentElement;
4621        return (window.document.scrollingElement || s)[i]
4622    }
4623
4624    function u(t, e) {
4625        var i = "x" === e ? "Left" : "Top",
4626            n = "Left" == i ? "Right" : "Bottom";
4627        return +t["border" + i + "Width"].split("px")[0] + +t["border" + n + "Width"].split("px")[0]
4628    }
4629
4630    function n(t, e, i, n) {
4631        return L(e["offset" + t], i["client" + t], i["offset" + t], q() ? i["offset" + t] + n["margin" + ("Height" === t ? "Top" : "Left")] + n["margin" + ("Height" === t ? "Bottom" : "Right")] : 0)
4632    }
4633
4634    function x() {
4635        var t = window.document.body,
4636            e = window.document.documentElement,
4637            i = q() && window.getComputedStyle(e);
4638        return {
4639            height: n("Height", t, e, i),
4640            width: n("Width", t, e, i)
4641        }
4642    }
4643
4644    function T(t) {
4645        return U({}, t, {
4646            right: t.left + t.width,
4647            bottom: t.top + t.height
4648        })
4649    }
4650
4651    function S(t) {
4652        var e = {};
4653        if (q()) try {
4654            e = t.getBoundingClientRect();
4655            var i = E(t, "top"),
4656                n = E(t, "left");
4657            e.top += i, e.left += n, e.bottom += i, e.right += n
4658        } catch (t) {} else e = t.getBoundingClientRect();
4659        var s = {
4660                left: e.left,
4661                top: e.top,
4662                width: e.right - e.left,
4663                height: e.bottom - e.top
4664            },
4665            o = "HTML" === t.nodeName ? x() : {},
4666            r = o.width || t.clientWidth || s.right - s.left,
4667            a = o.height || t.clientHeight || s.bottom - s.top,
4668            l = t.offsetWidth - r,
4669            h = t.offsetHeight - a;
4670        if (l || h) {
4671            var c = _(t);
4672            l -= u(c, "x"), h -= u(c, "y"), s.width -= l, s.height -= h
4673        }
4674        return T(s)
4675    }
4676
4677    function I(t, e) {
4678        var i = q(),
4679            n = "HTML" === e.nodeName,
4680            s = S(t),
4681            o = S(e),
4682            r = w(t),
4683            a = _(e),
4684            l = +a.borderTopWidth.split("px")[0],
4685            h = +a.borderLeftWidth.split("px")[0],
4686            c = T({
4687                top: s.top - o.top - l,
4688                left: s.left - o.left - h,
4689                width: s.width,
4690                height: s.height
4691            });
4692        if (c.marginTop = 0, c.marginLeft = 0, !i && n) {
4693            var u = +a.marginTop.split("px")[0],
4694                d = +a.marginLeft.split("px")[0];
4695            c.top -= l - u, c.bottom -= l - u, c.left -= h - d, c.right -= h - d, c.marginTop = u, c.marginLeft = d
4696        }
4697        return (i ? e.contains(r) : e === r && "BODY" !== r.nodeName) && (c = function(t, e, i) {
4698            var n = 2 < arguments.length && void 0 !== i && i,
4699                s = E(e, "top"),
4700                o = E(e, "left"),
4701                r = n ? -1 : 1;
4702            return t.top += s * r, t.bottom += s * r, t.left += o * r, t.right += o * r, t
4703        }(c, e)), c
4704    }
4705
4706    function f(t, e, i, n) {
4707        var s, o, r, a, l, h, c, u = {
4708                top: 0,
4709                left: 0
4710            },
4711            d = C(t, e);
4712        if ("viewport" === n) s = d, o = window.document.documentElement, r = I(s, o), a = L(o.clientWidth, window.innerWidth || 0), l = L(o.clientHeight, window.innerHeight || 0), h = E(o), c = E(o, "left"), u = T({
4713            top: h - r.top + r.marginTop,
4714            left: c - r.left + r.marginLeft,
4715            width: a,
4716            height: l
4717        });
4718        else {
4719            var f;
4720            "scrollParent" === n ? "BODY" === (f = w(y(t))).nodeName && (f = window.document.documentElement) : f = "window" === n ? window.document.documentElement : n;
4721            var p = I(f, d);
4722            if ("HTML" !== f.nodeName || function t(e) {
4723                    var i = e.nodeName;
4724                    return "BODY" !== i && "HTML" !== i && ("fixed" === _(e, "position") || t(y(e)))
4725                }(d)) u = p;
4726            else {
4727                var m = x(),
4728                    g = m.height,
4729                    v = m.width;
4730                u.top += p.top - p.marginTop, u.bottom = g + p.top, u.left += p.left - p.marginLeft, u.right = v + p.left
4731            }
4732        }
4733        return u.left += i, u.top += i, u.right -= i, u.bottom -= i, u
4734    }
4735
4736    function a(t, e, n, i, s, o) {
4737        var r = 5 < arguments.length && void 0 !== o ? o : 0;
4738        if (-1 === t.indexOf("auto")) return t;
4739        var a = f(n, i, r, s),
4740            l = {
4741                top: {
4742                    width: a.width,
4743                    height: e.top - a.top
4744                },
4745                right: {
4746                    width: a.right - e.right,
4747                    height: a.height
4748                },
4749                bottom: {
4750                    width: a.width,
4751                    height: a.bottom - e.bottom
4752                },
4753                left: {
4754                    width: e.left - a.left,
4755                    height: a.height
4756                }
4757            },
4758            h = Object.keys(l).map(function(t) {
4759                return U({
4760                    key: t
4761                }, l[t], {
4762                    area: (e = l[t]).width * e.height
4763                });
4764                var e
4765            }).sort(function(t, e) {
4766                return e.area - t.area
4767            }),
4768            c = h.filter(function(t) {
4769                var e = t.width,
4770                    i = t.height;
4771                return e >= n.clientWidth && i >= n.clientHeight
4772            }),
4773            u = 0 < c.length ? c[0].key : h[0].key,
4774            d = t.split("-")[1];
4775        return u + (d ? "-" + d : "")
4776    }
4777
4778    function l(t, e, i) {
4779        return I(i, C(e, i))
4780    }
4781
4782    function p(t) {
4783        var e = window.getComputedStyle(t),
4784            i = parseFloat(e.marginTop) + parseFloat(e.marginBottom),
4785            n = parseFloat(e.marginLeft) + parseFloat(e.marginRight);
4786        return {
4787            width: t.offsetWidth + n,
4788            height: t.offsetHeight + i
4789        }
4790    }
4791
4792    function A(t) {
4793        var e = {
4794            left: "right",
4795            right: "left",
4796            bottom: "top",
4797            top: "bottom"
4798        };
4799        return t.replace(/left|right|bottom|top/g, function(t) {
4800            return e[t]
4801        })
4802    }
4803
4804    function k(t, e, i) {
4805        i = i.split("-")[0];
4806        var n = p(t),
4807            s = {
4808                width: n.width,
4809                height: n.height
4810            },
4811            o = -1 !== ["right", "left"].indexOf(i),
4812            r = o ? "top" : "left",
4813            a = o ? "left" : "top",
vendor: 3,853 bytes, lines 4814-4917
4814            l = o ? "height" : "width",
4815            h = o ? "width" : "height";
4816        return s[r] = e[r] + e[l] / 2 - n[l] / 2, s[a] = i === a ? e[a] - n[h] : e[A(a)], s
4817    }
4818
4819    function D(t, e) {
4820        return Array.prototype.find ? t.find(e) : t.filter(e)[0]
4821    }
4822
4823    function O(t, i, e) {
4824        return (void 0 === e ? t : t.slice(0, function(t, e, i) {
4825            if (Array.prototype.findIndex) return t.findIndex(function(t) {
4826                return t[e] === i
4827            });
4828            var n = D(t, function(t) {
4829                return t[e] === i
4830            });
4831            return t.indexOf(n)
4832        }(t, "name", e))).forEach(function(t) {
4833            t.function && console.warn("`modifier.function` is deprecated, use `modifier.fn`!");
4834            var e = t.function || t.fn;
4835            t.enabled && o(e) && (i.offsets.popper = T(i.offsets.popper), i.offsets.reference = T(i.offsets.reference), i = e(i, t))
4836        }), i
4837    }
4838
4839    function t(t, i) {
4840        return t.some(function(t) {
4841            var e = t.name;
4842            return t.enabled && e === i
4843        })
4844    }
4845
4846    function N(t) {
4847        for (var e = [!1, "ms", "Webkit", "Moz", "O"], i = t.charAt(0).toUpperCase() + t.slice(1), n = 0; n < e.length - 1; n++) {
4848            var s = e[n],
4849                o = s ? "" + s + i : t;
4850            if (void 0 !== window.document.body.style[o]) return o
4851        }
4852        return null
4853    }
4854
4855    function e(t, e, i, n) {
4856        i.updateBound = n, window.addEventListener("resize", i.updateBound, {
4857            passive: !0
4858        });
4859        var s = w(t);
4860        return function t(e, i, n, s) {
4861            var o = "BODY" === e.nodeName,
4862                r = o ? window : e;
4863            r.addEventListener(i, n, {
4864                passive: !0
4865            }), o || t(w(r.parentNode), i, n, s), s.push(r)
4866        }(s, "scroll", i.updateBound, i.scrollParents), i.scrollElement = s, i.eventsEnabled = !0, i
4867    }
4868
4869    function i() {
4870        var e;
4871        this.state.eventsEnabled && (window.cancelAnimationFrame(this.scheduleUpdate), this.state = (this.reference, e = this.state, window.removeEventListener("resize", e.updateBound), e.scrollParents.forEach(function(t) {
4872            t.removeEventListener("scroll", e.updateBound)
4873        }), e.updateBound = null, e.scrollParents = [], e.scrollElement = null, e.eventsEnabled = !1, e))
4874    }
4875
4876    function d(t) {
4877        return "" !== t && !isNaN(parseFloat(t)) && isFinite(t)
4878    }
4879
4880    function h(i, n) {
4881        Object.keys(n).forEach(function(t) {
4882            var e = ""; - 1 !== ["width", "height", "top", "right", "bottom", "left"].indexOf(t) && d(n[t]) && (e = "px"), i.style[t] = n[t] + e
4883        })
4884    }
4885
4886    function m(t, e, i) {
4887        var n = D(t, function(t) {
4888                return t.name === e
4889            }),
4890            s = !!n && t.some(function(t) {
4891                return t.name === i && t.enabled && t.order < n.order
4892            });
4893        if (!s) {
4894            var o = "`" + e + "`";
4895            console.warn("`" + i + "` modifier is required by " + o + " modifier in order to work, be sure to include it before " + o + "!")
4896        }
4897        return s
4898    }
4899
4900    function s(t, e) {
4901        var i = 1 < arguments.length && void 0 !== e && e,
4902            n = K.indexOf(t),
4903            s = K.slice(n + 1).concat(K.slice(0, n));
4904        return i ? s.reverse() : s
4905    }
4906
4907    function g(t, s, o, e) {
4908        var r = [0, 0],
4909            a = -1 !== ["right", "left"].indexOf(e),
4910            i = t.split(/(\+|\-)/).map(function(t) {
4911                return t.trim()
4912            }),
4913            n = i.indexOf(D(i, function(t) {
4914                return -1 !== t.search(/,|\s/)
4915            }));
4916        i[n] && -1 === i[n].indexOf(",") && console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");
4917        var l = /\s*,\s*|\s+/,
4918            h = -1 === n ? [i] : [i.slice(0, n).concat([i[n].split(l)[0]]), [i[n].split(l)[1]].concat(i.slice(n + 1))];
4919        return (h = h.map(function(t, e) {
4920            var i = (1 === e ? !a : a) ? "height" : "width",
4921                n = !1;
4922            return t.reduce(function(t, e) {
4923                return "" === t[t.length - 1] && -1 !== ["+", "-"].indexOf(e) ? (t[t.length - 1] = e, n = !0, t) : n ? (t[t.length - 1] += e, n = !1, t) : t.concat(e)
4924            }, []).map(function(t) {
4925                return function(t, e, i, n) {
4926                    var s, o = t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),
4927                        r = +o[1],
4928                        a = o[2];
4929                    if (!r) return t;
4930                    if (0 !== a.indexOf("%")) return "vh" !== a && "vw" !== a ? r : ("vh" === a ? L(document.documentElement.clientHeight, window.innerHeight || 0) : L(document.documentElement.clientWidth, window.innerWidth || 0)) / 100 * r;
4931                    switch (a) {
4932                        case "%p":
4933                            s = i;
4934                            break;
4935                        case "%":
4936                        case "%r":
4937                        default:
4938                            s = n
4939                    }
4940                    return T(s)[e] / 100 * r
4941                }(t, i, s, o)
4942            })
4943        })).forEach(function(i, n) {
4944            i.forEach(function(t, e) {
4945                d(t) && (r[n] += t * ("-" === i[e - 1] ? -1 : 1))
4946            })
4947        }), r
4948    }
4949    for (var v = Math.min, P = Math.floor, L = Math.max, r = ["native code", "[object MutationObserverConstructor]"], j = "undefined" != typeof window, z = ["Edge", "Trident", "Firefox"], H = 0, M = 0; M < z.length; M += 1)
4950        if (j && 0 <= navigator.userAgent.indexOf(z[M])) {
4951            H = 1;
4952            break
4953        }
4954    function R(t, e, i) {
4955        return e in t ? Object.defineProperty(t, e, {
4956            value: i,
4957            enumerable: !0,
4958            configurable: !0,
4959            writable: !0
4960        }) : t[e] = i, t
4961    }
4962    var F, W, $ = j && (W = window.MutationObserver, r.some(function(t) {
4963            return -1 < (W || "").toString().indexOf(t)
4964        })) ? function(t) {
4965            var e = !1,
4966                i = 0,
4967                n = document.createElement("span");
4968            return new MutationObserver(function() {
4969                    t(), e = !1
4970                }).observe(n, {
4971                    attributes: !0
4972                }),
4973                function() {
4974                    e || (e = !0, n.setAttribute("x-index", i), ++i)
4975                }
4976        } : function(t) {
4977            var e = !1;
4978            return function() {
4979                e || (e = !0, setTimeout(function() {
4980                    e = !1, t()
4981                }, H))
4982            }
4983        },
4984        q = function() {
4985            return null == F && (F = -1 !== navigator.appVersion.indexOf("MSIE 10")), F
4986        },
4987        B = function(t, e, i) {
4988            return e && J(t.prototype, e), i && J(t, i), t
4989        },
4990        U = Object.assign || function(t) {
4991            for (var e, i = 1; i < arguments.length; i++)
4992                for (var n in e = arguments[i]) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
4993            return t
4994        },
4995        Q = ["auto-start", "auto", "auto-end", "top-start", "top", "top-end", "right-start", "right", "right-end", "bottom-end", "bottom", "bottom-start", "left-end", "left", "left-start"],
4996        K = Q.slice(3),
4997        V = "flip",
4998        Y = "clockwise",
4999        Z = "counterclockwise",
5000        X = (B(G, [{
5001            key: "update",
5002            value: function() {
5003                return function() {
5004                    if (!this.state.isDestroyed) {
5005                        var t = {
5006                            instance: this,
5007                            styles: {},
5008                            attributes: {},
5009                            flipped: !1,
5010                            offsets: {}
5011                        };
5012                        t.offsets.reference = l(this.state, this.popper, this.reference), t.placement = a(this.options.placement, t.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), t.originalPlacement = t.placement, t.offsets.popper = k(this.popper, t.offsets.reference, t.placement), t.offsets.popper.position = "absolute", t = O(this.modifiers, t), this.state.isCreated ? this.options.onUpdate(t) : (this.state.isCreated = !0, this.options.onCreate(t))
5013                    }
5014                }.call(this)
5015            }
5016        }, {
vendor: 14,521 bytes, lines 5017-5303
5017            key: "destroy",
5018            value: function() {
5019                return function() {
5020                    return this.state.isDestroyed = !0, t(this.modifiers, "applyStyle") && (this.popper.removeAttribute("x-placement"), this.popper.style.left = "", this.popper.style.position = "", this.popper.style.top = "", this.popper.style[N("transform")] = ""), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this
5021                }.call(this)
5022            }
5023        }, {
5024            key: "enableEventListeners",
5025            value: function() {
5026                return function() {
5027                    this.state.eventsEnabled || (this.state = e(this.reference, this.options, this.state, this.scheduleUpdate))
5028                }.call(this)
5029            }
5030        }, {
5031            key: "disableEventListeners",
5032            value: function() {
5033                return i.call(this)
5034            }
5035        }]), G);
5036
5037    function G(t, e) {
5038        var i = this,
5039            n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};
5040        (function(t, e) {
5041            if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
5042        })(this, G), this.scheduleUpdate = function() {
5043            return requestAnimationFrame(i.update)
5044        }, this.update = $(this.update.bind(this)), this.options = U({}, G.Defaults, n), this.state = {
5045            isDestroyed: !1,
5046            isCreated: !1,
5047            scrollParents: []
5048        }, this.reference = t.jquery ? t[0] : t, this.popper = e.jquery ? e[0] : e, this.options.modifiers = {}, Object.keys(U({}, G.Defaults.modifiers, n.modifiers)).forEach(function(t) {
5049            i.options.modifiers[t] = U({}, G.Defaults.modifiers[t] || {}, n.modifiers ? n.modifiers[t] : {})
5050        }), this.modifiers = Object.keys(this.options.modifiers).map(function(t) {
5051            return U({
5052                name: t
5053            }, i.options.modifiers[t])
5054        }).sort(function(t, e) {
5055            return t.order - e.order
5056        }), this.modifiers.forEach(function(t) {
5057            t.enabled && o(t.onLoad) && t.onLoad(i.reference, i.popper, i.options, t, i.state)
5058        }), this.update();
5059        var s = this.options.eventsEnabled;
5060        s && this.enableEventListeners(), this.state.eventsEnabled = s
5061    }
5062
5063    function J(t, e) {
5064        for (var i, n = 0; n < e.length; n++)(i = e[n]).enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i)
5065    }
5066    return X.Utils = ("undefined" == typeof window ? global : window).PopperUtils, X.placements = Q, X.Defaults = {
5067        placement: "bottom",
5068        eventsEnabled: !0,
5069        removeOnDestroy: !1,
5070        onCreate: function() {},
5071        onUpdate: function() {},
5072        modifiers: {
5073            shift: {
5074                order: 100,
5075                enabled: !0,
5076                fn: function(t) {
5077                    var e = t.placement,
5078                        i = e.split("-")[0],
5079                        n = e.split("-")[1];
5080                    if (n) {
5081                        var s = t.offsets,
5082                            o = s.reference,
5083                            r = s.popper,
5084                            a = -1 !== ["bottom", "top"].indexOf(i),
5085                            l = a ? "left" : "top",
5086                            h = a ? "width" : "height",
5087                            c = {
5088                                start: R({}, l, o[l]),
5089                                end: R({}, l, o[l] + o[h] - r[h])
5090                            };
5091                        t.offsets.popper = U({}, r, c[n])
5092                    }
5093                    return t
5094                }
5095            },
5096            offset: {
5097                order: 200,
5098                enabled: !0,
5099                fn: function(t, e) {
5100                    var i, n = e.offset,
5101                        s = t.placement,
5102                        o = t.offsets,
5103                        r = o.popper,
5104                        a = o.reference,
5105                        l = s.split("-")[0];
5106                    return i = d(+n) ? [+n, 0] : g(n, r, a, l), "left" === l ? (r.top += i[0], r.left -= i[1]) : "right" === l ? (r.top += i[0], r.left += i[1]) : "top" === l ? (r.left += i[0], r.top -= i[1]) : "bottom" === l && (r.left += i[0], r.top += i[1]), t.popper = r, t
5107                },
5108                offset: 0
5109            },
5110            preventOverflow: {
5111                order: 300,
5112                enabled: !0,
5113                fn: function(t, n) {
5114                    var e = n.boundariesElement || b(t.instance.popper);
5115                    t.instance.reference === e && (e = b(e));
5116                    var s = f(t.instance.popper, t.instance.reference, n.padding, e);
5117                    n.boundaries = s;
5118                    var i = n.priority,
5119                        o = t.offsets.popper,
5120                        r = {
5121                            primary: function(t) {
5122                                var e = o[t];
5123                                return o[t] < s[t] && !n.escapeWithReference && (e = L(o[t], s[t])), R({}, t, e)
5124                            },
5125                            secondary: function(t) {
5126                                var e = "right" === t ? "left" : "top",
5127                                    i = o[e];
5128                                return o[t] > s[t] && !n.escapeWithReference && (i = v(o[e], s[t] - ("right" === t ? o.width : o.height))), R({}, e, i)
5129                            }
5130                        };
5131                    return i.forEach(function(t) {
5132                        var e = -1 === ["left", "top"].indexOf(t) ? "secondary" : "primary";
5133                        o = U({}, o, r[e](t))
5134                    }), t.offsets.popper = o, t
5135                },
5136                priority: ["left", "right", "top", "bottom"],
5137                padding: 5,
5138                boundariesElement: "scrollParent"
5139            },
5140            keepTogether: {
5141                order: 400,
5142                enabled: !0,
5143                fn: function(t) {
5144                    var e = t.offsets,
5145                        i = e.popper,
5146                        n = e.reference,
5147                        s = t.placement.split("-")[0],
5148                        o = P,
5149                        r = -1 !== ["top", "bottom"].indexOf(s),
5150                        a = r ? "right" : "bottom",
5151                        l = r ? "left" : "top",
5152                        h = r ? "width" : "height";
5153                    return i[a] < o(n[l]) && (t.offsets.popper[l] = o(n[l]) - i[h]), i[l] > o(n[a]) && (t.offsets.popper[l] = o(n[a])), t
5154                }
5155            },
5156            arrow: {
5157                order: 500,
5158                enabled: !0,
5159                fn: function(t, e) {
5160                    if (!m(t.instance.modifiers, "arrow", "keepTogether")) return t;
5161                    var i = e.element;
5162                    if ("string" == typeof i) {
5163                        if (!(i = t.instance.popper.querySelector(i))) return t
5164                    } else if (!t.instance.popper.contains(i)) return console.warn("WARNING: `arrow.element` must be child of its popper element!"), t;
5165                    var n = t.placement.split("-")[0],
5166                        s = t.offsets,
5167                        o = s.popper,
5168                        r = s.reference,
5169                        a = -1 !== ["left", "right"].indexOf(n),
5170                        l = a ? "height" : "width",
5171                        h = a ? "top" : "left",
5172                        c = a ? "left" : "top",
5173                        u = a ? "bottom" : "right",
5174                        d = p(i)[l];
5175                    r[u] - d < o[h] && (t.offsets.popper[h] -= o[h] - (r[u] - d)), r[h] + d > o[u] && (t.offsets.popper[h] += r[h] + d - o[u]);
5176                    var f = r[h] + r[l] / 2 - d / 2 - T(t.offsets.popper)[h];
5177                    return f = L(v(o[l] - d, f), 0), t.arrowElement = i, t.offsets.arrow = {}, t.offsets.arrow[h] = Math.round(f), t.offsets.arrow[c] = "", t
5178                },
5179                element: "[x-arrow]"
5180            },
5181            flip: {
5182                order: 600,
5183                enabled: !0,
5184                fn: function(p, m) {
5185                    if (t(p.instance.modifiers, "inner")) return p;
5186                    if (p.flipped && p.placement === p.originalPlacement) return p;
5187                    var g = f(p.instance.popper, p.instance.reference, m.padding, m.boundariesElement),
5188                        v = p.placement.split("-")[0],
5189                        _ = A(v),
5190                        y = p.placement.split("-")[1] || "",
5191                        w = [];
5192                    switch (m.behavior) {
5193                        case V:
5194                            w = [v, _];
5195                            break;
5196                        case Y:
5197                            w = s(v);
5198                            break;
5199                        case Z:
5200                            w = s(v, !0);
5201                            break;
5202                        default:
5203                            w = m.behavior
5204                    }
5205                    return w.forEach(function(t, e) {
5206                        if (v !== t || w.length === e + 1) return p;
5207                        v = p.placement.split("-")[0], _ = A(v);
5208                        var i, n = p.offsets.popper,
5209                            s = p.offsets.reference,
5210                            o = P,
5211                            r = "left" === v && o(n.right) > o(s.left) || "right" === v && o(n.left) < o(s.right) || "top" === v && o(n.bottom) > o(s.top) || "bottom" === v && o(n.top) < o(s.bottom),
5212                            a = o(n.left) < o(g.left),
5213                            l = o(n.right) > o(g.right),
5214                            h = o(n.top) < o(g.top),
5215                            c = o(n.bottom) > o(g.bottom),
5216                            u = "left" === v && a || "right" === v && l || "top" === v && h || "bottom" === v && c,
5217                            d = -1 !== ["top", "bottom"].indexOf(v),
5218                            f = !!m.flipVariations && (d && "start" === y && a || d && "end" === y && l || !d && "start" === y && h || !d && "end" === y && c);
5219                        (r || u || f) && (p.flipped = !0, (r || u) && (v = w[e + 1]), f && (y = "end" === (i = y) ? "start" : "start" === i ? "end" : i), p.placement = v + (y ? "-" + y : ""), p.offsets.popper = U({}, p.offsets.popper, k(p.instance.popper, p.offsets.reference, p.placement)), p = O(p.instance.modifiers, p, "flip"))
5220                    }), p
5221                },
5222                behavior: "flip",
5223                padding: 5,
5224                boundariesElement: "viewport"
5225            },
5226            inner: {
5227                order: 700,
5228                enabled: !1,
5229                fn: function(t) {
5230                    var e = t.placement,
5231                        i = e.split("-")[0],
5232                        n = t.offsets,
5233                        s = n.popper,
5234                        o = n.reference,
5235                        r = -1 !== ["left", "right"].indexOf(i),
5236                        a = -1 === ["top", "left"].indexOf(i);
5237                    return s[r ? "left" : "top"] = o[e] - (a ? s[r ? "width" : "height"] : 0), t.placement = A(e), t.offsets.popper = T(s), t
5238                }
5239            },
5240            hide: {
5241                order: 800,
5242                enabled: !0,
5243                fn: function(t) {
5244                    if (!m(t.instance.modifiers, "hide", "preventOverflow")) return t;
5245                    var e = t.offsets.reference,
5246                        i = D(t.instance.modifiers, function(t) {
5247                            return "preventOverflow" === t.name
5248                        }).boundaries;
5249                    if (e.bottom < i.top || e.left > i.right || e.top > i.bottom || e.right < i.left) {
5250                        if (!0 === t.hide) return t;
5251                        t.hide = !0, t.attributes["x-out-of-boundaries"] = ""
5252                    } else {
5253                        if (!1 === t.hide) return t;
5254                        t.hide = !1, t.attributes["x-out-of-boundaries"] = !1
5255                    }
5256                    return t
5257                }
5258            },
5259            computeStyle: {
5260                order: 850,
5261                enabled: !0,
5262                fn: function(t, e) {
5263                    var i = e.x,
5264                        n = e.y,
5265                        s = t.offsets.popper,
5266                        o = D(t.instance.modifiers, function(t) {
5267                            return "applyStyle" === t.name
5268                        }).gpuAcceleration;
5269                    void 0 !== o && console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");
5270                    var r, a, l = void 0 === o ? e.gpuAcceleration : o,
5271                        h = S(b(t.instance.popper)),
5272                        c = {
5273                            position: s.position
5274                        },
5275                        u = {
5276                            left: P(s.left),
5277                            top: P(s.top),
5278                            bottom: P(s.bottom),
5279                            right: P(s.right)
5280                        },
5281                        d = "bottom" === i ? "top" : "bottom",
5282                        f = "right" === n ? "left" : "right",
5283                        p = N("transform");
5284                    if (a = "bottom" == d ? -h.height + u.bottom : u.top, r = "right" == f ? -h.width + u.right : u.left, l && p) c[p] = "translate3d(" + r + "px, " + a + "px, 0)", c[d] = 0, c[f] = 0, c.willChange = "transform";
5285                    else {
5286                        var m = "bottom" == d ? -1 : 1,
5287                            g = "right" == f ? -1 : 1;
5288                        c[d] = a * m, c[f] = r * g, c.willChange = d + ", " + f
5289                    }
5290                    var v = {
5291                        "x-placement": t.placement
5292                    };
5293                    return t.attributes = U({}, v, t.attributes), t.styles = U({}, c, t.styles), t
5294                },
5295                gpuAcceleration: !0,
5296                x: "bottom",
5297                y: "right"
5298            },
5299            applyStyle: {
5300                order: 900,
5301                enabled: !0,
5302                fn: function(t) {
5303                    return h(t.instance.popper, t.styles), e = t.instance.popper, i = t.attributes, Object.keys(i).forEac
5303h(function(t) {
5304                        !1 === i[t] ? e.removeAttribute(t) : e.setAttribute(t, i[t])
5305                    }), t.offsets.arrow && h(t.arrowElement, t.offsets.arrow), t;
5306                    var e, i
5307                },
5308                onLoad: function(t, e, i, n, s) {
5309                    var o = l(0, e, t),
5310                        r = a(i.placement, o, e, t, i.modifiers.flip.boundariesElement, i.modifiers.flip.padding);
5311                    return e.setAttribute("x-placement", r), h(e, {
5312                        position: "absolute"
5313                    }), i
5314                },
5315                gpuAcceleration: void 0
5316            }
5317        }
5318    }, X
5319}),
5320function(t, e) {
5321    if ("function" == typeof define && define.amd) define(["module", "exports"], e);
5322    else if ("undefined" != typeof exports) e(module, exports);
5323    else {
5324        var i = {
5325            exports: {}
5326        };
5327        e(i, i.exports), t.WOW = i.exports
5328    }
5329}(this, function(t, e) {
5330    "use strict";
5331
5332    function i(t, e) {
5333        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
5334    }
5335
5336    function s(t, e) {
5337        return 0 <= e.indexOf(t)
5338    }
5339
5340    function n(t, e, i) {
5341        null != t.addEventListener ? t.addEventListener(e, i, !1) : null != t.attachEvent ? t.attachEvent("on" + e, i) : t[e] = i
5342    }
5343
5344    function o(t, e, i) {
5345        null != t.removeEventListener ? t.removeEventListener(e, i, !1) : null != t.detachEvent ? t.detachEvent("on" + e, i) : delete t[e]
5346    }
5347    Object.defineProperty(e, "__esModule", {
5348        value: !0
5349    });
5350    var r = function(t, e, i) {
5351            return e && p(t.prototype, e), i && p(t, i), t
5352        },
5353        a = window.WeakMap || window.MozWeakMap || (r(f, [{
5354            key: "get",
5355            value: function(t) {
5356                for (var e = 0; e < this.keys.length; e++)
5357                    if (this.keys[e] === t) return this.values[e]
5358            }
5359        }, {
5360            key: "set",
5361            value: function(t, e) {
5362                for (var i = 0; i < this.keys.length; i++)
5363                    if (this.keys[i] === t) return this.values[i] = e, this;
5364                return this.keys.push(t), this.values.push(e), this
5365            }
5366        }]), f),
5367        l = window.MutationObserver || window.WebkitMutationObserver || window.MozMutationObserver || (r(d, [{
5368            key: "observe",
5369            value: function() {}
5370        }]), d.notSupported = !0, d),
5371        h = window.getComputedStyle || function(i) {
5372            var n = /(\-([a-z]){1})/g;
5373            return {
5374                getPropertyValue: function(t) {
5375                    "float" === t && (t = "styleFloat"), n.test(t) && t.replace(n, function(t, e) {
5376                        return e.toUpperCase()
5377                    });
5378                    var e = i.currentStyle;
5379                    return (null != e ? e[t] : void 0) || null
5380                }
5381            }
5382        },
5383        c = (r(u, [{
5384            key: "init",
5385            value: function() {
5386                this.element = window.document.documentElement, s(document.readyState, ["interactive", "complete"]) ? this.start() : n(document, "DOMContentLoaded", this.start), this.finished = []
5387            }
5388        }, {
5389            key: "start",
5390            value: function() {
5391                var o = this;
5392                if (this.stopped = !1, this.boxes = [].slice.call(this.element.querySelectorAll("." + this.config.boxClass)), this.all = this.boxes.slice(0), this.boxes.length)
5393                    if (this.disabled()) this.resetStyle();
5394                    else
5395                        for (var t = 0; t < this.boxes.length; t++) {
5396                            var e = this.boxes[t];
5397                            this.applyStyle(e, !0)
5398                        }
5399                this.disabled() || (n(this.config.scrollContainer || window, "scroll", this.scrollHandler), n(window, "resize", this.scrollHandler), this.interval = setInterval(this.scrollCallback, 50)), this.config.live && new l(function(t) {
5400                    for (var e = 0; e < t.length; e++)
5401                        for (var i = t[e], n = 0; n < i.addedNodes.length; n++) {
5402                            var s = i.addedNodes[n];
5403                            o.doSync(s)
5404                        }
5405                }).observe(document.body, {
5406                    childList: !0,
5407                    subtree: !0
5408                })
5409            }
5410        }, {
5411            key: "stop",
5412            value: function() {
5413                this.stopped = !0, o(this.config.scrollContainer || window, "scroll", this.scrollHandler), o(window, "resize", this.scrollHandler), null != this.interval && clearInterval(this.interval)
5414            }
5415        }, {
5416            key: "sync",
5417            value: function() {
5418                l.notSupported && this.doSync(this.element)
5419            }
5420        }, {
5421            key: "doSync",
5422            value: function(t) {
5423                if (null != t || (t = this.element), 1 === t.nodeType)
5424                    for (var e = (t = t.parentNode || t).querySelectorAll("." + this.config.boxClass), i = 0; i < e.length; i++) {
5425                        var n = e[i];
5426                        s(n, this.all) || (this.boxes.push(n), this.all.push(n), this.stopped || this.disabled() ? this.resetStyle() : this.applyStyle(n, !0), this.scrolled = !0)
5427                    }
5428            }
5429        }, {
5430            key: "show",
5431            value: function(t) {
5432                return this.applyStyle(t), t.className = t.className + " " + this.config.animateClass, null != this.config.callback && this.config.callback(t), e = t, i = this.wowEvent, null != e.dispatchEvent ? e.dispatchEvent(i) : i in (null != e) ? e[i]() : "on" + i in (null != e) && e["on" + i](), this.config.resetAnimation && (n(t, "animationend", this.resetAnimation), n(t, "oanimationend", this.resetAnimation), n(t, "webkitAnimationEnd", this.resetAnimation), n(t, "MSAnimationEnd", this.resetAnimation)), t;
5433                var e, i
5434            }
5435        }, {
5436            key: "applyStyle",
5437            value: function(t, e) {
5438                var i = this,
5439                    n = t.getAttribute("data-wow-duration"),
5440                    s = t.getAttribute("data-wow-delay"),
5441                    o = t.getAttribute("data-wow-iteration");
5442                return this.animate(function() {
5443                    return i.customStyle(t, e, n, s, o)
5444                })
5445            }
5446        }, {
5447            key: "resetStyle",
5448            value: function() {
5449                for (var t = 0; t < this.boxes.length; t++) this.boxes[t].style.visibility = "visible"
5450            }
5451        }, {
5452            key: "resetAnimation",
5453            value: function(t) {
5454                if (0 <= t.type.toLowerCase().indexOf("animationend")) {
5455                    var e = t.target || t.srcElement;
5456                    e.className = e.className.replace(this.config.animateClass, "").trim()
5457                }
5458            }
5459        }, {
5460            key: "customStyle",
5461            value: function(t, e, i, n, s) {
5462                return e && this.cacheAnimationName(t), t.style.visibility = e ? "hidden" : "visible", i && this.vendorSet(t.style, {
5463                    animationDuration: i
5464                }), n && this.vendorSet(t.style, {
5465                    animationDelay: n
5466                }), s && this.vendorSet(t.style, {
5467                    animationIterationCount: s
5468                }), this.vendorSet(t.style, {
5469                    animationName: e ? "none" : this.cachedAnimationName(t)
5470                }), t
5471            }
5472        }, {
5473            key: "vendorSet",
5474            value: function(t, e) {
5475                for (var i in e)
5476                    if (e.hasOwnProperty(i)) {
5477                        var n = e[i];
5478                        t["" + i] = n;
5479                        for (var s = 0; s < this.vendors.length; s++) t["" + this.vendors[s] + i.charAt(0).toUpperCase() + i.substr(1)] = n
5480                    }
5481            }
5482        }, {
5483            key: "vendorCSS",
5484            value: function(t, e) {
5485                for (var i = h(t), n = i.getPropertyCSSValue(e), s = 0; s < this.vendors.length; s++) {
5486                    var o = this.vendors[s];
5487                    n = n || i.getPropertyCSSValue("-" + o + "-" + e)
5488                }
5489                return n
5490            }
5491        }, {
5492            key: "animationName",
5493            value: function(e) {
5494                var i = void 0;
5495                try {
5496                    i = this.vendorCSS(e, "animation-name").cssText
5497                } catch (t) {
5498                    i = h(e).getPropertyValue("animation-name")
5499                }
5500                return "none" === i ? "" : i
5501            }
5502        }, {
5503            key: "cacheAnimationName",
5504            value: function(t) {
5505                return this.animationNameCache.set(t, this.animationName(t))
5506            }
5507        }, {
5508            key: "cachedAnimationName",
5509            value: function(t) {
5510                return this.animationNameCache.get(t)
5511            }
5512        }, {
5513            key: "scrollHandler",
5514            value: function() {
5515                this.scrolled = !0
5516            }
5517        }, {
5518            key: "scrollCallback",
5519            value: function() {
5520                if (this.scrolled) {
5521                    this.scrolled = !1;
5522                    for (var t = [], e = 0; e < this.boxes.length; e++) {
5523                        var i = this.boxes[e];
5524                        if (i) {
5525                            if (this.isVisible(i)) {
5526                                this.show(i);
5527                                continue
5528                            }
5529                            t.push(i)
5530                        }
5531                    }
5532                    this.boxes = t, this.boxes.length || this.config.live || this.stop()
5533                }
5534            }
5535        }, {
5536            key: "offsetTop",
5537            value: function(t) {
5538                for (; void 0 === t.offsetTop;) t = t.parentNode;
5539                for (var e = t.offsetTop; t.offsetParent;) e += (t = t.offsetParent).offsetTop;
5540                return e
5541            }
5542        }, {
5543            key: "isVisible",
5544            value: function(t) {
5545                var e = t.getAttribute("data-wow-offset") || this.config.offset,
5546                    i = this.config.scrollContainer && this.config.scrollContainer.scrollTop || window.pageYOffset,
5547                    n = i + Math.min(this.element.clientHeight, "innerHeight" in window ? window.innerHeight : document.documentElement.clientHeight) - e,
5548                    s = this.offsetTop(t),
5549                    o = s + t.clientHeight;
5550                return s <= n && i <= o
5551            }
5552        }, {
5553            key: "disabled",
5554            value: function() {
5555                return !this.config.mobile && (t = navigator.userAgent, /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t));
5556                var t
5557            }
5558        }]), u);
5559
5560    function u() {
5561        var t = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0];
5562        i(this, u), this.defaults = {
5563            boxClass: "wow",
5564            animateClass: "animated",
5565            offset: 0,
5566            mobile: !0,
5567            live: !0,
5568            callback: null,
5569            scrollContainer: null,
5570            resetAnimation: !0
5571        }, this.animate = "requestAnimationFrame" in window ? function(t) {
5572            return window.requestAnimationFrame(t)
5573        } : function(t) {
5574            return t()
5575        }, this.vendors = ["moz", "webkit"], this.start = this.start.bind(this), this.resetAnimation = this.resetAnimation.bind(this), this.scrollHandler = this.scrollHandler.bind(this), this.scrollCallback = this.scrollCallback.bind(this), this.scrolled = !0, this.config = function(t, e) {
5576            for (var i in e)
5577                if (null == t[i]) {
5578                    var n = e[i];
5579                    t[i] = n
5580                }
5581            return t
5582        }(t, this.defaults), null != t.scrollContainer && (this.config.scrollContainer = document.querySelector(t.scrollContainer)), this.animationNameCache = new a, this.wowEvent = function(t, e, i, n) {
5583            var s = !(arguments.length <= 1 || void 0 === e) && e,
5584                o = !(arguments.length <= 2 || void 0 === i) && i,
5585                r = arguments.length <= 3 || void 0 === n ? null : n,
5586                a = void 0;
5587            return null != document.createEvent ? (a = document.createEvent("CustomEvent")).initCustomEvent(t, s, o, r) : null != document.createEventObject ? (a = document.createEventObject()).eventType = t : a.eventName = t, a
5588        }(this.config.boxClass)
5589    }
5590
5591    function d() {
5592        i(this, d), "undefined" != typeof console && null !== console && (console.warn("MutationObserver is not supported by your browser."), console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content."))
5593    }
5594
5595    function f() {
5596        i(this, f), this.keys = [], this.values = []
5597    }
5598
5599    function p(t, e) {
5600        for (var i = 0; i < e.length; i++) {
5601            var n = e[i];
5602            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n)
5603        }
5604    }
5605    e.default = c, t.exports = e.default
5606});

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.