PageSourceSearch

https://unicach.mx/assets/js/common_scripts_min.js?4cb1e3a96f0ee040ad96776abb115c47da7d5af0

js unicach.mx collected 2026-10-01 12:05:50 UTC 457,354 bytes, 7,853 lines download raw bytes

1! function(t, e) {
2    "object" == typeof exports && "undefined" != typeof module ? e(exports, require("jquery")) : "function" == typeof define && define.amd ? define(["exports", "jquery"], e) : e((t = t || self).bootstrap = {}, t.jQuery)
3}(this, function(t, f) {
4    "use strict";
5
6    function s(t, e) {
7        for (var i = 0; i < e.length; i++) {
8            var s = e[i];
9            s.enumerable = s.enumerable || !1, s.configurable = !0, "value" in s && (s.writable = !0), Object.defineProperty(t, s.key, s)
10        }
11    }
12
13    function r(t, e, i) {
14        return e && s(t.prototype, e), i && s(t, i), t
15    }
16
17    function l(n) {
18        for (var t = 1; t < arguments.length; t++) {
19            var o = null != arguments[t] ? arguments[t] : {},
20                e = Object.keys(o);
21            "function" == typeof Object.getOwnPropertySymbols && (e = e.concat(Object.getOwnPropertySymbols(o).filter(function(t) {
22                return Object.getOwnPropertyDescriptor(o, t).enumerable
23            }))), e.forEach(function(t) {
24                var e, i, s;
25                e = n, s = o[i = t], i in e ? Object.defineProperty(e, i, {
26                    value: s,
27                    enumerable: !0,
28                    configurable: !0,
29                    writable: !0
30                }) : e[i] = s
31            })
32        }
33        return n
34    }
35    f = f && f.hasOwnProperty("default") ? f.default : f;
36    var e = "transitionend";
37
38    function i(t) {
39        var e = this,
40            i = !1;
41        return f(this).one(m.TRANSITION_END, function() {
42            i = !0
43        }), setTimeout(function() {
44            i || m.triggerTransitionEnd(e)
45        }, t), this
46    }
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 = f(t).css("transition-duration"),
68                i = f(t).css("transition-delay"),
69                s = parseFloat(e),
70                n = parseFloat(i);
71            return s || n ? (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            f(t).trigger(e)
78        },
79        supportsTransitionEnd: function() {
80            return Boolean(e)
81        },
82        isElement: function(t) {
83            return (t[0] || t).nodeType
84        },
85        typeCheckConfig: function(t, e, i) {
86            for (var s in i)
87                if (Object.prototype.hasOwnProperty.call(i, s)) {
88                    var n = i[s],
89                        o = e[s],
90                        r = o && m.isElement(o) ? "element" : (a = o, {}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());
91                    if (!new RegExp(n).test(r)) throw new Error(t.toUpperCase() + ': Option "' + s + '" provided type "' + r + '" but expected type "' + n + '".')
92                }
93            var a
94        },
95        findShadowRoot: function(t) {
96            if (!document.documentElement.attachShadow) return null;
97            if ("function" != typeof t.getRootNode) return t instanceof ShadowRoot ? t : t.parentNode ? m.findShadowRoot(t.parentNode) : null;
98            var e = t.getRootNode();
99            return e instanceof ShadowRoot ? e : null
100        }
101    };
102    f.fn.emulateTransitionEnd = i, f.event.special[m.TRANSITION_END] = {
103        bindType: e,
104        delegateType: e,
105        handle: function(t) {
106            if (f(t.target).is(this)) return t.handleObj.handler.apply(this, arguments)
107        }
108    };
109    var n = "alert",
110        o = "bs.alert",
111        a = "." + o,
112        h = f.fn[n],
113        c = {
114            CLOSE: "close" + a,
115            CLOSED: "closed" + a,
116            CLICK_DATA_API: "click" + a + ".data-api"
117        },
118        d = "alert",
119        u = "fade",
120        p = "show",
121        g = function() {
122            function s(t) {
123                this._element = t
124            }
125            var t = s.prototype;
126            return t.close = function(t) {
127                var e = this._element;
128                t && (e = this._getRootElement(t)), this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e)
129            }
129, t.dispose = function() {
130                f.removeData(this._element, o), this._element = null
131            }, t._getRootElement = function(t) {
132                var e = m.getSelectorFromElement(t),
133                    i = !1;
134                return e && (i = document.querySelector(e)), i = i || f(t).closest("." + d)[0]
135            }, t._triggerCloseEvent = function(t) {
136                var e = f.Event(c.CLOSE);
137                return f(t).trigger(e), e
138            }, t._removeElement = function(e) {
139                var i = this;
140                if (f(e).removeClass(p), f(e).hasClass(u)) {
141                    var t = m.getTransitionDurationFromElement(e);
142                    f(e).one(m.TRANSITION_END, function(t) {
143                        return i._destroyElement(e, t)
144                    }).emulateTransitionEnd(t)
145                } else this._destroyElement(e)
146            }, t._destroyElement = function(t) {
147                f(t).detach().trigger(c.CLOSED).remove()
148            }, s._jQueryInterface = function(i) {
149                return this.each(function() {
150                    var t = f(this),
151                        e = t.data(o);
152                    e || (e = new s(this), t.data(o, e)), "close" === i && e[i](this)
153                })
154            }, s._handleDismiss = function(e) {
155                return function(t) {
156                    t && t.preventDefault(), e.close(this)
157                }
158            }, r(s, null, [{
159                key: "VERSION",
160                get: function() {
161                    return "4.3.1"
162                }
163            }]), s
164        }();
165    f(document).on(c.CLICK_DATA_API, '[data-dismiss="alert"]', g._handleDismiss(new g)), f.fn[n] = g._jQueryInterface, f.fn[n].Constructor = g, f.fn[n].noConflict = function() {
166        return f.fn[n] = h, g._jQueryInterface
167    };
168    var _ = "button",
169        v = "bs.button",
170        y = "." + v,
171        w = ".data-api",
172        b = f.fn[_],
173        k = "active",
174        x = "btn",
175        C = "focus",
176        T = '[data-toggle^="button"]',
177        E = '[data-toggle="buttons"]',
178        D = 'input:not([type="hidden"])',
179        S = ".active",
180        M = ".btn",
181        I = {
182            CLICK_DATA_API: "click" + y + w,
183            FOCUS_BLUR_DATA_API: "focus" + y + w + " blur" + y + w
184        },
185        A = function() {
186            function i(t) {
187                this._element = t
188            }
189            var t = i.prototype;
190            return t.toggle = function() {
191                var t = !0,
192                    e = !0,
193                    i = f(this._element).closest(E)[0];
194                if (i) {
195                    var s = this._element.querySelector(D);
196                    if (s) {
197                        if ("radio" === s.type)
198                            if (s.checked && this._element.classList.contains(k)) t = !1;
199                            else {
200                                var n = i.querySelector(S);
201                                n && f(n).removeClass(k)
202                            }
203                        if (t) {
204                            if (s.hasAttribute("disabled") || i.hasAttribute("disabled") || s.classList.contains("disabled") || i.classList.contains("disabled")) return;
205                            s.checked = !this._element.classList.contains(k), f(s).trigger("change")
206                        }
207                        s.focus(), e = !1
208                    }
209                }
210                e && this._element.setAttribute("aria-pressed", !this._element.classList.contains(k)), t && f(this._element).toggleClass(k)
211            }, t.dispose = function() {
212                f.removeData(this._element, v), this._element = null
213            }, i._jQueryInterface = function(e) {
214                return this.each(function() {
215                    var t = f(this).data(v);
216                    t || (t = new i(this), f(this).data(v, t)), "toggle" === e && t[e]()
217                })
218            }, r(i, null, [{
219                key: "VERSION",
220                get: function() {
221                    return "4.3.1"
222                }
223            }]), i
224        }();
225    f(document).on(I.CLICK_DATA_API, T, function(t) {
226        t.preventDefault();
227        var e = t.target;
228        f(e).hasClass(x) || (e = f(e).closest(M)), A._jQueryInterface.call(f(e), "toggle")
229    }).on(I.FOCUS_BLUR_DATA_API, T, function(t) {
230        var e = f(t.target).closest(M)[0];
231        f(e).toggleClass(C, /^focus(in)?$/.test(t.type))
232    }), f.fn[_] = A._jQueryInterface, f.fn[_].Constructor = A, f.fn[_].noConflict = function() {
233        return f.fn[_] = b, A._jQueryInterface
234    };
235    var $ = "carousel",
236        O = "bs.carousel",
237        N = "." + O,
238        P = ".data-api",
239        F = f.fn[$],
240        H = {
241            interval: 5e3,
242            keyboard: !0,
243            slide: !1,
244            pause: "hover",
245            wrap: !0,
246            touch: !0
247        },
248        j = {
249            interval: "(number|boolean)",
250            keyboard: "boolean",
251            slide: "(boolean|string)",
252            pause: "(string|boolean)",
253            wrap: "boolean",
254            touch: "boolean"
255        },
256        L = "next",
257        z = "prev",
258        W = "left",
259        U = "right",
260        R = {
261            SLIDE: "slide" + N,
262            SLID: "slid" + N,
263            KEYDOWN: "keydown" + N,
264            MOUSEENTER: "mouseenter" + N,
265            MOUSELEAVE: "mouseleave" + N,
266            TOUCHSTART: "touchstart" + N,
267            TOUCHMOVE: "touchmove" + N,
268            TOUCHEND: "touchend" + N,
269            POINTERDOWN: "pointerdown" + N,
270            POINTERUP: "pointerup" + N,
271            DRAG_START: "dragstart" + N,
272            LOAD_DATA_API: "load" + N + P,
273            CLICK_DATA_API: "click" + N + P
274        },
275        B = "carousel",
276        q = "active",
277        Y = "slide",
278        V = "carousel-item-right",
279        K = "carousel-item-left",
280        Q = "carousel-item-next",
281        X = "carousel-item-prev",
282        J = "pointer-event",
283        G = ".active",
284        Z = ".active.carousel-item",
285        tt = ".carousel-item",
286        et = ".carousel-item img",
287        it = ".carousel-item-next, .carousel-item-prev",
288        st = ".carousel-indicators",
289        nt = "[data-slide], [data-slide-to]",
290        ot = '[data-ride="carousel"]',
291        rt = {
292            TOUCH: "touch",
293            PEN: "pen"
294        },
295        at = function() {
296            function o(t, e) {
297                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(st), this._touchSupported = "ontouchstart" in document.documentElement || 0 < navigator.maxTouchPoints, this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent), this._addEventListeners()
298            }
299            var t = o.prototype;
300            return t.next = function() {
301                this._isSliding || this._slide(L)
302            }, t.nextWhenVisible = function() {
303                !document.hidden && f(this._element).is(":visible") && "hidden" !== f(this._element).css("visibility") && this.next()
304            }, t.prev = function() {
305                this._isSliding || this._slide(z)
306            }, t.pause = function(t) {
307                t || (this._isPaused = !0), this._element.querySelector(it) && (m.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null
308            }, t.cycle = function(t) {
309                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))
310            }, t.to = function(t) {
311                var e = this;
312                this._activeElement = this._element.querySelector(Z);
313                var i = this._getItemIndex(this._activeElement);
314                if (!(t > this._items.length - 1 || t < 0))
315                    if (this._isSliding) f(this._element).one(R.SLID, function() {
316                        return e.to(t)
317                    });
318                    else {
319                        if (i === t) return this.pause(), void this.cycle();
320                        var s = i < t ? L : z;
321                        this._slide(s, this._items[t])
322                    }
323            }
323, t.dispose = function() {
324                f(this._element).off(N), f.removeData(this._element, O), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null
325            }, t._getConfig = function(t) {
326                return t = l({}, H, t), m.typeCheckConfig($, t, j), t
327            }, t._handleSwipe = function() {
328                var t = Math.abs(this.touchDeltaX);
329                if (!(t <= 40)) {
330                    var e = t / this.touchDeltaX;
331                    0 < e && this.prev(), e < 0 && this.next()
332                }
333            }, t._addEventListeners = function() {
334                var e = this;
335                this._config.keyboard && f(this._element).on(R.KEYDOWN, function(t) {
336                    return e._keydown(t)
337                }), "hover" === this._config.pause && f(this._element).on(R.MOUSEENTER, function(t) {
338                    return e.pause(t)
339                }).on(R.MOUSELEAVE, function(t) {
340                    return e.cycle(t)
341                }), this._config.touch && this._addTouchEventListeners()
342            }, t._addTouchEventListeners = function() {
343                var i = this;
344                if (this._touchSupported) {
345                    var e = function(t) {
346                            i._pointerEvent && rt[t.originalEvent.pointerType.toUpperCase()] ? i.touchStartX = t.originalEvent.clientX : i._pointerEvent || (i.touchStartX = t.originalEvent.touches[0].clientX)
347                        },
348                        s = function(t) {
349                            i._pointerEvent && rt[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) {
350                                return i.cycle(t)
351                            }, 500 + i._config.interval))
352                        };
353                    f(this._element.querySelectorAll(et)).on(R.DRAG_START, function(t) {
354                        return t.preventDefault()
355                    }), this._pointerEvent ? (f(this._element).on(R.POINTERDOWN, function(t) {
356                        return e(t)
357                    }), f(this._element).on(R.POINTERUP, function(t) {
358                        return s(t)
359                    }), this._element.classList.add(J)) : (f(this._element).on(R.TOUCHSTART, function(t) {
360                        return e(t)
361                    }), f(this._element).on(R.TOUCHMOVE, function(t) {
362                        var e;
363                        (e = t).originalEvent.touches && 1 < e.originalEvent.touches.length ? i.touchDeltaX = 0 : i.touchDeltaX = e.originalEvent.touches[0].clientX - i.touchStartX
364                    }), f(this._element).on(R.TOUCHEND, function(t) {
365                        return s(t)
366                    }))
367                }
368            }, t._keydown = function(t) {
369                if (!/input|textarea/i.test(t.target.tagName)) switch (t.which) {
370                    case 37:
371                        t.preventDefault(), this.prev();
372                        break;
373                    case 39:
374                        t.preventDefault(), this.next()
375                }
376            }, t._getItemIndex = function(t) {
377                return this._items = t && t.parentNode ? [].slice.call(t.parentNode.querySelectorAll(tt)) : [], this._items.indexOf(t)
378            }, t._getItemByDirection = function(t, e) {
379                var i = t === L,
380                    s = t === z,
381                    n = this._getItemIndex(e),
382                    o = this._items.length - 1;
383                if ((s && 0 === n || i && n === o) && !this._config.wrap) return e;
384                var r = (n + (t === z ? -1 : 1)) % this._items.length;
385                return -1 == r ? this._items[this._items.length - 1] : this._items[r]
386            }, t._triggerSlideEvent = function(t, e) {
387                var i = this._getItemIndex(t),
388                    s = this._getItemIndex(this._element.querySelector(Z)),
389                    n = f.Event(R.SLIDE, {
390                        relatedTarget: t,
391                        direction: e,
392                        from: s,
393                        to: i
394                    });
395                return f(this._element).trigger(n), n
396            }, t._setActiveIndicatorElement = function(t) {
397                if (this._indicatorsElement) {
398                    var e = [].slice.call(this._indicatorsElement.querySelectorAll(G));
399                    f(e).removeClass(q);
400                    var i = this._indicatorsElement.children[this._getItemIndex(t)];
401                    i && f(i).addClass(q)
402                }
403            }, t._slide = function(t, e) {
404                var i, s, n, o = this,
405                    r = this._element.querySelector(Z),
406                    a = this._getItemIndex(r),
407                    l = e || r && this._getItemByDirection(t, r),
408                    h = this._getItemIndex(l),
409                    c = Boolean(this._interval);
410                if (n = t === L ? (i = K, s = Q, W) : (i = V, s = X, U), l && f(l).hasClass(q)) this._isSliding = !1;
411                else if (!this._triggerSlideEvent(l, n).isDefaultPrevented() && r && l) {
412                    this._isSliding = !0, c && this.pause(), this._setActiveIndicatorElement(l);
413                    var d = f.Event(R.SLID, {
414                        relatedTarget: l,
415                        direction: n,
416                        from: a,
417                        to: h
418                    });
419                    if (f(this._element).hasClass(Y)) {
420                        f(l).addClass(s), m.reflow(l), f(r).addClass(i), f(l).addClass(i);
421                        var u = parseInt(l.getAttribute("data-interval"), 10);
422                        u ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = u) : this._config.interval = this._config.defaultInterval || this._config.interval;
423                        var p = m.getTransitionDurationFromElement(r);
424                        f(r).one(m.TRANSITION_END, function() {
425                            f(l).removeClass(i + " " + s).addClass(q), f(r).removeClass(q + " " + s + " " + i), o._isSliding = !1, setTimeout(function() {
426                                return f(o._element).trigger(d)
427                            }, 0)
428                        }).emulateTransitionEnd(p)
429                    } else f(r).removeClass(q), f(l).addClass(q), this._isSliding = !1, f(this._element).trigger(d);
430                    c && this.cycle()
431                }
432            }, o._jQueryInterface = function(s) {
433                return this.each(function() {
434                    var t = f(this).data(O),
435                        e = l({}, H, f(this).data());
436                    "object" == typeof s && (e = l({}, e, s));
437                    var i = "string" == typeof s ? s : e.slide;
438                    if (t || (t = new o(this, e), f(this).data(O, t)), "number" == typeof s) t.to(s);
439                    else if ("string" == typeof i) {
440                        if (void 0 === t[i]) throw new TypeError('No method n
440amed "' + i + '"');
441                        t[i]()
442                    } else e.interval && e.ride && (t.pause(), t.cycle())
443                })
444            }, o._dataApiClickHandler = function(t) {
445                var e = m.getSelectorFromElement(this);
446                if (e) {
447                    var i = f(e)[0];
448                    if (i && f(i).hasClass(B)) {
449                        var s = l({}, f(i).data(), f(this).data()),
450                            n = this.getAttribute("data-slide-to");
451                        n && (s.interval = !1), o._jQueryInterface.call(f(i), s), n && f(i).data(O).to(n), t.preventDefault()
452                    }
453                }
454            }, r(o, null, [{
455                key: "VERSION",
456                get: function() {
457                    return "4.3.1"
458                }
459            }, {
460                key: "Default",
461                get: function() {
462                    return H
463                }
464            }]), o
465        }();
466    f(document).on(R.CLICK_DATA_API, nt, at._dataApiClickHandler), f(window).on(R.LOAD_DATA_API, function() {
467        for (var t = [].slice.call(document.querySelectorAll(ot)), e = 0, i = t.length; e < i; e++) {
468            var s = f(t[e]);
469            at._jQueryInterface.call(s, s.data())
470        }
471    }), f.fn[$] = at._jQueryInterface, f.fn[$].Constructor = at, f.fn[$].noConflict = function() {
472        return f.fn[$] = F, at._jQueryInterface
473    };
474    var lt = "collapse",
475        ht = "bs.collapse",
476        ct = "." + ht,
477        dt = f.fn[lt],
478        ut = {
479            toggle: !0,
480            parent: ""
481        },
482        pt = {
483            toggle: "boolean",
484            parent: "(string|element)"
485        },
486        ft = {
487            SHOW: "show" + ct,
488            SHOWN: "shown" + ct,
489            HIDE: "hide" + ct,
490            HIDDEN: "hidden" + ct,
491            CLICK_DATA_API: "click" + ct + ".data-api"
492        },
493        mt = "show",
494        gt = "collapse",
495        _t = "collapsing",
496        vt = "collapsed",
497        yt = "width",
498        wt = "height",
499        bt = ".show, .collapsing",
500        kt = '[data-toggle="collapse"]',
501        xt = function() {
502            function a(e, t) {
503                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 + '"]'));
504                for (var i = [].slice.call(document.querySelectorAll(kt)), s = 0, n = i.length; s < n; s++) {
505                    var o = i[s],
506                        r = m.getSelectorFromElement(o),
507                        a = [].slice.call(document.querySelectorAll(r)).filter(function(t) {
508                            return t === e
509                        });
510                    null !== r && 0 < a.length && (this._selector = r, this._triggerArray.push(o))
511                }
512                this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle()
513            }
514            var t = a.prototype;
515            return t.toggle = function() {
516                f(this._element).hasClass(mt) ? this.hide() : this.show()
517            }, t.show = function() {
518                var t, e, i = this;
519                if (!this._isTransitioning && !f(this._element).hasClass(mt) && (this._parent && 0 === (t = [].slice.call(this._parent.querySelectorAll(bt)).filter(function(t) {
520                        return "string" == typeof i._config.parent ? t.getAttribute("data-parent") === i._config.parent : t.classList.contains(gt)
521                    })).length && (t = null), !(t && (e = f(t).not(this._selector).data(ht)) && e._isTransitioning))) {
522                    var s = f.Event(ft.SHOW);
523                    if (f(this._element).trigger(s), !s.isDefaultPrevented()) {
524                        t && (a._jQueryInterface.call(f(t).not(this._selector), "hide"), e || f(t).data(ht, null));
525                        var n = this._getDimension();
526                        f(this._element).removeClass(gt).addClass(_t), this._element.style[n] = 0, this._triggerArray.length && f(this._triggerArray).removeClass(vt).attr("aria-expanded", !0), this.setTransitioning(!0);
527                        var o = "scroll" + (n[0].toUpperCase() + n.slice(1)),
528                            r = m.getTransitionDurationFromElement(this._element);
529                        f(this._element).one(m.TRANSITION_END, function() {
530                            f(i._element).removeClass(_t).addClass(gt).addClass(mt), i._element.style[n] = "", i.setTransitioning(!1), f(i._element).trigger(ft.SHOWN)
531                        }).emulateTransitionEnd(r), this._element.style[n] = this._element[o] + "px"
532                    }
533                }
534            }, t.hide = function() {
535                var t = this;
536                if (!this._isTransitioning && f(this._element).hasClass(mt)) {
537                    var e = f.Event(ft.HIDE);
538                    if (f(this._element).trigger(e), !e.isDefaultPrevented()) {
539                        var i = this._getDimension();
540                        this._element.style[i] = this._element.getBoundingClientRect()[i] + "px", m.reflow(this._element), f(this._element).addClass(_t).removeClass(gt).removeClass(mt);
541                        var s = this._triggerArray.length;
542                        if (0 < s)
543                            for (var n = 0; n < s; n++) {
544                                var o = this._triggerArray[n],
545                                    r = m.getSelectorFromElement(o);
546                                if (null !== r) f([].slice.call(document.querySelectorAll(r))).hasClass(mt) || f(o).addClass(vt).attr("aria-expanded", !1)
547                            }
548                        this.setTransitioning(!0);
549                        this._element.style[i] = "";
550                        var a = m.getTransitionDurationFromElement(this._element);
551                        f(this._element).one(m.TRANSITION_END, function() {
552                            t.setTransitioning(!1), f(t._element).removeClass(_t).addClass(gt).trigger(ft.HIDDEN)
553                        }).emulateTransitionEnd(a)
554                    }
555                }
556            }, t.setTransitioning = function(t) {
557                this._isTransitioning = t
558            }
558, t.dispose = function() {
559                f.removeData(this._element, ht), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null
560            }, t._getConfig = function(t) {
561                return (t = l({}, ut, t)).toggle = Boolean(t.toggle), m.typeCheckConfig(lt, t, pt), t
562            }, t._getDimension = function() {
563                return f(this._element).hasClass(yt) ? yt : wt
564            }, t._getParent = function() {
565                var t, i = this;
566                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);
567                var e = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]',
568                    s = [].slice.call(t.querySelectorAll(e));
569                return f(s).each(function(t, e) {
570                    i._addAriaAndCollapsedClass(a._getTargetFromElement(e), [e])
571                }), t
572            }, t._addAriaAndCollapsedClass = function(t, e) {
573                var i = f(t).hasClass(mt);
574                e.length && f(e).toggleClass(vt, !i).attr("aria-expanded", i)
575            }, a._getTargetFromElement = function(t) {
576                var e = m.getSelectorFromElement(t);
577                return e ? document.querySelector(e) : null
578            }, a._jQueryInterface = function(s) {
579                return this.each(function() {
580                    var t = f(this),
581                        e = t.data(ht),
582                        i = l({}, ut, t.data(), "object" == typeof s && s ? s : {});
583                    if (!e && i.toggle && /show|hide/.test(s) && (i.toggle = !1), e || (e = new a(this, i), t.data(ht, e)), "string" == typeof s) {
584                        if (void 0 === e[s]) throw new TypeError('No method named "' + s + '"');
585                        e[s]()
586                    }
587                })
588            }, r(a, null, [{
589                key: "VERSION",
590                get: function() {
591                    return "4.3.1"
592                }
593            }, {
594                key: "Default",
595                get: function() {
596                    return ut
597                }
598            }]), a
599        }();
600    f(document).on(ft.CLICK_DATA_API, kt, function(t) {
601        "A" === t.currentTarget.tagName && t.preventDefault();
602        var i = f(this),
603            e = m.getSelectorFromElement(this),
604            s = [].slice.call(document.querySelectorAll(e));
605        f(s).each(function() {
606            var t = f(this),
607                e = t.data(ht) ? "toggle" : i.data();
608            xt._jQueryInterface.call(t, e)
609        })
610    }), f.fn[lt] = xt._jQueryInterface, f.fn[lt].Constructor = xt, f.fn[lt].noConflict = function() {
611        return f.fn[lt] = dt, xt._jQueryInterface
612    };
613    for (var Ct = "undefined" != typeof window && "undefined" != typeof document, Tt = ["Edge", "Trident", "Firefox"], Et = 0, Dt = 0; Dt < Tt.length; Dt += 1)
614        if (Ct && 0 <= navigator.userAgent.indexOf(Tt[Dt])) {
615            Et = 1;
616            break
617        }
618    var St = Ct && window.Promise ? function(t) {
619        var e = !1;
620        return function() {
621            e || (e = !0, window.Promise.resolve().then(function() {
622                e = !1, t()
623            }))
624        }
625    } : function(t) {
626        var e = !1;
627        return function() {
628            e || (e = !0, setTimeout(function() {
629                e = !1, t()
630            }, Et))
631        }
632    };
633
634    function Mt(t) {
635        return t && "[object Function]" === {}.toString.call(t)
636    }
637
638    function It(t, e) {
639        if (1 !== t.nodeType) return [];
640        var i = t.ownerDocument.defaultView.getComputedStyle(t, null);
641        return e ? i[e] : i
642    }
643
644    function At(t) {
645        return "HTML" === t.nodeName ? t : t.parentNode || t.host
646    }
647
648    function $t(t) {
649        if (!t) return document.body;
650        switch (t.nodeName) {
651            case "HTML":
652            case "BODY":
653                return t.ownerDocument.body;
654            case "#document":
655                return t.body
656        }
657        var e = It(t),
658            i = e.overflow,
659            s = e.overflowX,
660            n = e.overflowY;
661        return /(auto|scroll|overlay)/.test(i + n + s) ? t : $t(At(t))
662    }
663    var Ot = Ct && !(!window.MSInputMethodContext || !document.documentMode),
664        Nt = Ct && /MSIE 10/.test(navigator.userAgent);
665
666    function Pt(t) {
667        return 11 === t ? Ot : 10 === t ? Nt : Ot || Nt
668    }
669
670    function Ft(t) {
671        if (!t) return document.documentElement;
672        for (var e = Pt(10) ? document.body : null, i = t.offsetParent || null; i === e && t.nextElementSibling;) i = (t = t.nextElementSibling).offsetParent;
673        var s = i && i.nodeName;
674        return s && "BODY" !== s && "HTML" !== s ? -1 !== ["TH", "TD", "TABLE"].indexOf(i.nodeName) && "static" === It(i, "position") ? Ft(i) : i : t ? t.ownerDocument.documentElement : document.documentElement
675    }
676
677    function Ht(t) {
678        return null !== t.parentNode ? Ht(t.parentNode) : t
679    }
680
681    function jt(t, e) {
682        if (!(t && t.nodeType && e && e.nodeType)) return document.documentElement;
683        var i = t.compareDocumentPosition(e) & Node.DOCUMENT_POSITION_FOLLOWING,
684            s = i ? t : e,
685            n = i ? e : t,
686            o = document.createRange();
687        o.setStart(s, 0), o.setEnd(n, 0);
688        var r, a, l = o.commonAncestorContainer;
689        if (t !== l && e !== l || s.contains(n)) return "BODY" === (a = (r = l).nodeName) || "HTML" !== a && Ft(r.firstElementChild) !== r ? Ft(l) : l;
690        var h = Ht(t);
691        return h.host ? jt(h.host, e) : jt(t, Ht(e).host)
692    }
693
694    function Lt(t, e) {
695        var i = "top" === (1 < arguments.length && void 0 !== e ? e : "top") ? "scrollTop" : "scrollLeft",
696            s = t.nodeName;
697        if ("BODY" !== s && "HTML" !== s) return t[i];
698        var n = t.ownerDocument.documentElement;
699        return (t.ownerDocument.scrollingElement || n)[i]
700    }
701
702    function zt(t, e) {
703        var i = "x" === e ? "Left" : "Top",
704            s = "Left" == i ? "Right" : "Bottom";
705        return parseFloat(t["border" + i + "Width"], 10) + parseFloat(t["border" + s + "Width"], 10)
706    }
707
708    function Wt(t, e, i, s) {
709        return Math.max(e["offset" + t], e["scroll" + t], i["client" + t], i["offset" + t], i["scroll" + t], Pt(10) ? parseInt(i["offset" + t]) + parseInt(s["margin" + ("Height" === t ? "Top" : "Left")]) + parseInt(s["margin" + ("Height" === t ? "Bottom" : "Right")]) : 0)
710    }
711
712    function Ut(t) {
713        var e = t.body,
714            i = t.documentElement,
715            s = Pt(10) && getComputedStyle(i);
716        return {
717            height: Wt("Height", e, i, s),
718            width: Wt("Width", e, i, s)
719        }
720    }
721    var Rt = function(t, e, i) {
722        return e && Bt(t.prototype, e), i && Bt(t, i), t
723    };
724
725    function Bt(t, e) {
726        for (var i = 0; i < e.length; i++) {
727            var s = e[i];
728            s.enumerable = s.enumerable || !1, s.configurable = !0, "value" in s && (s.writable = !0), Object.defineProperty(t, s.key, s)
729        }
730    }
731
732    function qt(t, e, i) {
733        return e in t ? Object.defineProperty(t, e, {
734            value: i,
735            enumerable: !0,
736            configurable: !0,
737            writable: !0
738        }) : t[e] = i, t
739    }
740    var Yt = Object.assign || function(t) {
741        for (var e = 1; e < arguments.length; e++) {
742            var i = arguments[e];
743            for (var s in i) Object.prototype.hasOwnProperty.call(i, s) && (t[s] = i[s])
744        }
745        return t
746    };
747
748    function Vt(t) {
749        return Yt({}, t, {
750            right: t.left + t.width,
751            bottom: t.top + t.height
752        })
753    }
754
755    function Kt(t) {
756        var e = {};
757        try {
758            if (Pt(10)) {
759                e = t.getBoundingClientRect();
760                var i = Lt(t, "top"),
761                    s = Lt(t, "left");
762                e.top += i, e.left += s, e.bottom += i, e.right += s
763            } else e = t.getBoundingClientRect()
764        } catch (t) {}
765        var n = {
766                left: e.left,
767                top: e.top,
768                width: e.right - e.left,
769                height: e.bottom - e.top
770            },
771            o = "HTML" === t.nodeName ? Ut(t.ownerDocument) : {},
772            r = o.width || t.clientWidth || n.right - n.left,
773            a = o.height || t.clientHeight || n.bottom - n.top,
774            l = t.offsetWidth - r,
775            h = t.offsetHeight - a;
776        if (l || h) {
777            var c = It(t);
778            l -= zt(c, "x"), h -= zt(c, "y"), n.width -= l, n.height -= h
779        }
780        return Vt(n)
781    }
782
783    function Qt(t, e, i) {
784        var s = 2 < arguments.length && void 0 !== i && i,
785            n = Pt(10),
786            o = "HTML" === e.nodeName,
787            r = Kt(t),
788            a = Kt(e),
789            l = $t(t),
790            h = It(e),
791            c = parseFloat(h.borderTopWidth, 10),
792            d = parseFloat(h.borderLeftWidth, 10);
793        s && o && (a.top = Math.max(a.top, 0), a.left = Math.max(a.left, 0));
794        var u = Vt({
795            top: r.top - a.top - c,
796            left: r.left - a.left - d,
797            width: r.width,
798            height: r.height
799        });
800        if (u.marginTop = 0, u.marginLeft = 0, !n && o) {
801            var p = parseFloat(h.marginTop, 10),
802                f = parseFloat(h.marginLeft, 10);
803            u.top -= c - p, u.bottom -= c - p, u.left -= d - f, u.right -= d - f, u.marginTop = p, u.marginLeft = f
804        }
805        return (n && !s ? e.contains(l) : e === l && "BODY" !== l.nodeName) && (u = function(t, e, i) {
806            var s = 2 < arguments.length && void 0 !== i && i,
807                n = Lt(e, "top"),
808                o = Lt(e, "left"),
809                r = s ? -1 : 1;
810            return t.top += n * r, t.bottom += n * r, t.left += o * r, t.right += o * r, t
811        }(u, e)), u
812    }
813
814    function Xt(t) {
815        if (!t || !t.parentElement || Pt()) return document.documentElement;
816        for (var e = t.parentElement; e && "none" === It(e, "transform");) e = e.parentElement;
817        return e || document.documentElement
818    }
819
820    function Jt(t, e, i, s, n) {
821        var o = 4 < arguments.length && void 0 !== n && n,
822            r = {
823                top: 0,
824                left: 0
825            },
826            a = o ? Xt(t) : jt(t, e);
827        if ("viewport" === s) r = function(t, e) {
828            var i = 1 < arguments.length && void 0 !== e && e,
829                s = t.ownerDocument.documentElement,
830                n = Qt(t, s),
831                o = Math.max(s.clientWidth, window.innerWidth || 0),
832                r = Math.max(s.clientHeight, window.innerHeight || 0),
833                a = i ? 0 : Lt(s),
834                l = i ? 0 : Lt(s, "left");
835            return Vt({
836                top: a - n.top + n.marginTop,
837                left: l - n.left + n.marginLeft,
838                width: o,
839                height: r
840            })
841        }(a, o);
842        else {
843            var l = void 0;
844            "scrollParent" === s ? "BODY" === (l = $t(At(e))).nodeName && (l = t.ownerDocument.documentElement) : l = "window" === s ? t.ownerDocument.documentElement : s;
845            var h = Qt(l, a, o);
846            if ("HTML" !== l.nodeName || function t(e) {
847                    var i = e.nodeName;
848                    if ("BODY" === i || "HTML" === i) return !1;
849                    if ("fixed" === It(e, "position")) return !0;
850                    var s = At(e);
851                    return !!s && t(s)
852                }(a)) r = h;
853            else {
854                var c = Ut(t.ownerDocument),
855                    d = c.height,
856                    u = c.width;
857                r.top += h.top - h.marginTop, r.bottom = d + h.top, r.left += h.left - h.marginLeft, r.right = u + h.left
858            }
859        }
860        var p = "number" == typeof(i = i || 0);
861        return r.left += p ? i : i.left || 0, r.top += p ? i : i.top || 0, r.right -= p ? i : i.right || 0, r.bottom -= p ? i : i.bottom || 0, r
862    }
863
864    function Gt(t, e, s, i, n, o) {
865        var r = 5 < arguments.length && void 0 !== o ? o : 0;
866        if (-1 === t.indexOf("auto")) return t;
867        var a = Jt(s, i, r, n),
868            l = {
869                top: {
870                    width: a.width,
871                    height: e.top - a.top
872                },
873                right: {
874                    width: a.right - e.right,
875                    height: a.height
876                },
877                bottom: {
878                    width: a.width,
879                    height: a.bottom - e.bottom
880                },
881                left: {
882                    width: e.left - a.left,
883                    height: a.height
884                }
885            },
886            h = Object.keys(l).map(function(t) {
887                return Yt({
888                    key: t
889                }, l[t], {
890                    area: (e = l[t]).width * e.height
891                });
892                var e
893            }).sort(function(t, e) {
894                return e.area - t.area
895            }),
896            c = h.filter(function(t) {
897                var e = t.width,
898                    i = t.height;
899                return e >= s.clientWidth && i >= s.clientHeight
900            }),
901            d = 0 < c.length ? c[0].key : h[0].key,
902            u = t.split("-")[1];
903        return d + (u ? "-" + u : "")
904    }
905
906    function Zt(t, e, i, s) {
907        var n = 3 < arguments.length && void 0 !== s ? s : null;
908        return Qt(i, n ? Xt(e) : jt(e, i), n)
909    }
910
911    function te(t) {
912        var e = t.ownerDocument.defaultView.getComputedStyle(t),
913            i = parseFloat(e.marginTop || 0) + parseFloat(e.marginBottom || 0),
914            s = parseFloat(e.marginLeft || 0) + parseFloat(e.marginRight || 0
vendor: 15,160 bytes, lines 914-1266
914);
915        return {
916            width: t.offsetWidth + s,
917            height: t.offsetHeight + i
918        }
919    }
920
921    function ee(t) {
922        var e = {
923            left: "right",
924            right: "left",
925            bottom: "top",
926            top: "bottom"
927        };
928        return t.replace(/left|right|bottom|top/g, function(t) {
929            return e[t]
930        })
931    }
932
933    function ie(t, e, i) {
934        i = i.split("-")[0];
935        var s = te(t),
936            n = {
937                width: s.width,
938                height: s.height
939            },
940            o = -1 !== ["right", "left"].indexOf(i),
941            r = o ? "top" : "left",
942            a = o ? "left" : "top",
943            l = o ? "height" : "width",
944            h = o ? "width" : "height";
945        return n[r] = e[r] + e[l] / 2 - s[l] / 2, n[a] = i === a ? e[a] - s[h] : e[ee(a)], n
946    }
947
948    function se(t, e) {
949        return Array.prototype.find ? t.find(e) : t.filter(e)[0]
950    }
951
952    function ne(t, i, e) {
953        return (void 0 === e ? t : t.slice(0, function(t, e, i) {
954            if (Array.prototype.findIndex) return t.findIndex(function(t) {
955                return t[e] === i
956            });
957            var s = se(t, function(t) {
958                return t[e] === i
959            });
960            return t.indexOf(s)
961        }(t, "name", e))).forEach(function(t) {
962            t.function && console.warn("`modifier.function` is deprecated, use `modifier.fn`!");
963            var e = t.function || t.fn;
964            t.enabled && Mt(e) && (i.offsets.popper = Vt(i.offsets.popper), i.offsets.reference = Vt(i.offsets.reference), i = e(i, t))
965        }), i
966    }
967
968    function oe(t, i) {
969        return t.some(function(t) {
970            var e = t.name;
971            return t.enabled && e === i
972        })
973    }
974
975    function re(t) {
976        for (var e = [!1, "ms", "Webkit", "Moz", "O"], i = t.charAt(0).toUpperCase() + t.slice(1), s = 0; s < e.length; s++) {
977            var n = e[s],
978                o = n ? "" + n + i : t;
979            if (void 0 !== document.body.style[o]) return o
980        }
981        return null
982    }
983
984    function ae(t) {
985        var e = t.ownerDocument;
986        return e ? e.defaultView : window
987    }
988
989    function le(t, e, i, s) {
990        i.updateBound = s, ae(t).addEventListener("resize", i.updateBound, {
991            passive: !0
992        });
993        var n = $t(t);
994        return function t(e, i, s, n) {
995            var o = "BODY" === e.nodeName,
996                r = o ? e.ownerDocument.defaultView : e;
997            r.addEventListener(i, s, {
998                passive: !0
999            }), o || t($t(r.parentNode), i, s, n), n.push(r)
1000        }(n, "scroll", i.updateBound, i.scrollParents), i.scrollElement = n, i.eventsEnabled = !0, i
1001    }
1002
1003    function he() {
1004        var t, e;
1005        this.state.eventsEnabled && (cancelAnimationFrame(this.scheduleUpdate), this.state = (t = this.reference, e = this.state, ae(t).removeEventListener("resize", e.updateBound), e.scrollParents.forEach(function(t) {
1006            t.removeEventListener("scroll", e.updateBound)
1007        }), e.updateBound = null, e.scrollParents = [], e.scrollElement = null, e.eventsEnabled = !1, e))
1008    }
1009
1010    function ce(t) {
1011        return "" !== t && !isNaN(parseFloat(t)) && isFinite(t)
1012    }
1013
1014    function de(i, s) {
1015        Object.keys(s).forEach(function(t) {
1016            var e = ""; - 1 !== ["width", "height", "top", "right", "bottom", "left"].indexOf(t) && ce(s[t]) && (e = "px"), i.style[t] = s[t] + e
1017        })
1018    }
1019
1020    function ue(t, e) {
1021        function i(t) {
1022            return t
1023        }
1024        var s = t.offsets,
1025            n = s.popper,
1026            o = s.reference,
1027            r = Math.round,
1028            a = Math.floor,
1029            l = r(o.width),
1030            h = r(n.width),
1031            c = -1 !== ["left", "right"].indexOf(t.placement),
1032            d = -1 !== t.placement.indexOf("-"),
1033            u = e ? c || d || l % 2 == h % 2 ? r : a : i,
1034            p = e ? r : i;
1035        return {
1036            left: u(l % 2 == 1 && h % 2 == 1 && !d && e ? n.left - 1 : n.left),
1037            top: p(n.top),
1038            bottom: p(n.bottom),
1039            right: u(n.right)
1040        }
1041    }
1042    var pe = Ct && /Firefox/i.test(navigator.userAgent);
1043
1044    function fe(t, e, i) {
1045        var s = se(t, function(t) {
1046                return t.name === e
1047            }),
1048            n = !!s && t.some(function(t) {
1049                return t.name === i && t.enabled && t.order < s.order
1050            });
1051        if (!n) {
1052            var o = "`" + e + "`",
1053                r = "`" + i + "`";
1054            console.warn(r + " modifier is required by " + o + " modifier in order to work, be sure to include it before " + o + "!")
1055        }
1056        return n
1057    }
1058    var me = ["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"],
1059        ge = me.slice(3);
1060
1061    function _e(t, e) {
1062        var i = 1 < arguments.length && void 0 !== e && e,
1063            s = ge.indexOf(t),
1064            n = ge.slice(s + 1).concat(ge.slice(0, s));
1065        return i ? n.reverse() : n
1066    }
1067    var ve = "flip",
1068        ye = "clockwise",
1069        we = "counterclockwise";
1070
1071    function be(t, n, o, e) {
1072        var r = [0, 0],
1073            a = -1 !== ["right", "left"].indexOf(e),
1074            i = t.split(/(\+|\-)/).map(function(t) {
1075                return t.trim()
1076            }),
1077            s = i.indexOf(se(i, function(t) {
1078                return -1 !== t.search(/,|\s/)
1079            }));
1080        i[s] && -1 === i[s].indexOf(",") && console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");
1081        var l = /\s*,\s*|\s+/,
1082            h = -1 !== s ? [i.slice(0, s).concat([i[s].split(l)[0]]), [i[s].split(l)[1]].concat(i.slice(s + 1))] : [i];
1083        return (h = h.map(function(t, e) {
1084            var i = (1 === e ? !a : a) ? "height" : "width",
1085                s = !1;
1086            return t.reduce(function(t, e) {
1087                return "" === t[t.length - 1] && -1 !== ["+", "-"].indexOf(e) ? (t[t.length - 1] = e, s = !0, t) : s ? (t[t.length - 1] += e, s = !1, t) : t.concat(e)
1088            }, []).map(function(t) {
1089                return function(t, e, i, s) {
1090                    var n = t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),
1091                        o = +n[1],
1092                        r = n[2];
1093                    if (!o) return t;
1094                    if (0 !== r.indexOf("%")) return "vh" !== r && "vw" !== r ? o : ("vh" === r ? Math.max(document.documentElement.clientHeight, window.innerHeight || 0) : Math.max(document.documentElement.clientWidth, window.innerWidth || 0)) / 100 * o;
1095                    var a = void 0;
1096                    switch (r) {
1097                        case "%p":
1098                            a = i;
1099                            break;
1100                        case "%":
1101                        case "%r":
1102                        default:
1103                            a = s
1104                    }
1105                    return Vt(a)[e] / 100 * o
1106                }(t, i, n, o)
1107            })
1108        })).forEach(function(i, s) {
1109            i.forEach(function(t, e) {
1110                ce(t) && (r[s] += t * ("-" === i[e - 1] ? -1 : 1))
1111            })
1112        }), r
1113    }
1114    var ke = {
1115            placement: "bottom",
1116            positionFixed: !1,
1117            eventsEnabled: !0,
1118            removeOnDestroy: !1,
1119            onCreate: function() {},
1120            onUpdate: function() {},
1121            modifiers: {
1122                shift: {
1123                    order: 100,
1124                    enabled: !0,
1125                    fn: function(t) {
1126                        var e = t.placement,
1127                            i = e.split("-")[0],
1128                            s = e.split("-")[1];
1129                        if (s) {
1130                            var n = t.offsets,
1131                                o = n.reference,
1132                                r = n.popper,
1133                                a = -1 !== ["bottom", "top"].indexOf(i),
1134                                l = a ? "left" : "top",
1135                                h = a ? "width" : "height",
1136                                c = {
1137                                    start: qt({}, l, o[l]),
1138                                    end: qt({}, l, o[l] + o[h] - r[h])
1139                                };
1140                            t.offsets.popper = Yt({}, r, c[s])
1141                        }
1142                        return t
1143                    }
1144                },
1145                offset: {
1146                    order: 200,
1147                    enabled: !0,
1148                    fn: function(t, e) {
1149                        var i = e.offset,
1150                            s = t.placement,
1151                            n = t.offsets,
1152                            o = n.popper,
1153                            r = n.reference,
1154                            a = s.split("-")[0],
1155                            l = void 0;
1156                        return l = ce(+i) ? [+i, 0] : be(i, o, r, a), "left" === a ? (o.top += l[0], o.left -= l[1]) : "right" === a ? (o.top += l[0], o.left += l[1]) : "top" === a ? (o.left += l[0], o.top -= l[1]) : "bottom" === a && (o.left += l[0], o.top += l[1]), t.popper = o, t
1157                    },
1158                    offset: 0
1159                },
1160                preventOverflow: {
1161                    order: 300,
1162                    enabled: !0,
1163                    fn: function(t, s) {
1164                        var e = s.boundariesElement || Ft(t.instance.popper);
1165                        t.instance.reference === e && (e = Ft(e));
1166                        var i = re("transform"),
1167                            n = t.instance.popper.style,
1168                            o = n.top,
1169                            r = n.left,
1170                            a = n[i];
1171                        n.top = "", n.left = "", n[i] = "";
1172                        var l = Jt(t.instance.popper, t.instance.reference, s.padding, e, t.positionFixed);
1173                        n.top = o, n.left = r, n[i] = a, s.boundaries = l;
1174                        var h = s.priority,
1175                            c = t.offsets.popper,
1176                            d = {
1177                                primary: function(t) {
1178                                    var e = c[t];
1179                                    return c[t] < l[t] && !s.escapeWithReference && (e = Math.max(c[t], l[t])), qt({}, t, e)
1180                                },
1181                                secondary: function(t) {
1182                                    var e = "right" === t ? "left" : "top",
1183                                        i = c[e];
1184                                    return c[t] > l[t] && !s.escapeWithReference && (i = Math.min(c[e], l[t] - ("right" === t ? c.width : c.height))), qt({}, e, i)
1185                                }
1186                            };
1187                        return h.forEach(function(t) {
1188                            var e = -1 !== ["left", "top"].indexOf(t) ? "primary" : "secondary";
1189                            c = Yt({}, c, d[e](t))
1190                        }), t.offsets.popper = c, t
1191                    },
1192                    priority: ["left", "right", "top", "bottom"],
1193                    padding: 5,
1194                    boundariesElement: "scrollParent"
1195                },
1196                keepTogether: {
1197                    order: 400,
1198                    enabled: !0,
1199                    fn: function(t) {
1200                        var e = t.offsets,
1201                            i = e.popper,
1202                            s = e.reference,
1203                            n = t.placement.split("-")[0],
1204                            o = Math.floor,
1205                            r = -1 !== ["top", "bottom"].indexOf(n),
1206                            a = r ? "right" : "bottom",
1207                            l = r ? "left" : "top",
1208                            h = r ? "width" : "height";
1209                        return i[a] < o(s[l]) && (t.offsets.popper[l] = o(s[l]) - i[h]), i[l] > o(s[a]) && (t.offsets.popper[l] = o(s[a])), t
1210                    }
1211                },
1212                arrow: {
1213                    order: 500,
1214                    enabled: !0,
1215                    fn: function(t, e) {
1216                        var i;
1217                        if (!fe(t.instance.modifiers, "arrow", "keepTogether")) return t;
1218                        var s = e.element;
1219                        if ("string" == typeof s) {
1220                            if (!(s = t.instance.popper.querySelector(s))) return t
1221                        } else if (!t.instance.popper.contains(s)) return console.warn("WARNING: `arrow.element` must be child of its popper element!"), t;
1222                        var n = t.placement.split("-")[0],
1223                            o = t.offsets,
1224                            r = o.popper,
1225                            a = o.reference,
1226                            l = -1 !== ["left", "right"].indexOf(n),
1227                            h = l ? "height" : "width",
1228                            c = l ? "Top" : "Left",
1229                            d = c.toLowerCase(),
1230                            u = l ? "left" : "top",
1231                            p = l ? "bottom" : "right",
1232                            f = te(s)[h];
1233                        a[p] - f < r[d] && (t.offsets.popper[d] -= r[d] - (a[p] - f)), a[d] + f > r[p] && (t.offsets.popper[d] += a[d] + f - r[p]), t.offsets.popper = Vt(t.offsets.popper);
1234                        var m = a[d] + a[h] / 2 - f / 2,
1235                            g = It(t.instance.popper),
1236                            _ = parseFloat(g["margin" + c], 10),
1237                            v = parseFloat(g["border" + c + "Width"], 10),
1238                            y = m - t.offsets.popper[d] - _ - v;
1239                        return y = Math.max(Math.min(r[h] - f, y), 0), t.arrowElement = s, t.offsets.arrow = (qt(i = {}, d, Math.round(y)), qt(i, u, ""), i), t
1240                    },
1241                    element: "[x-arrow]"
1242                },
1243                flip: {
1244                    order: 600,
1245                    enabled: !0,
1246                    fn: function(f, m) {
1247                        if (oe(f.instance.modifiers, "inner")) return f;
1248                        if (f.flipped && f.placement === f.originalPlacement) return f;
1249                        var g = Jt(f.instance.popper, f.instance.reference, m.padding, m.boundariesElement, f.positionFixed),
1250                            _ = f.placement.split("-")[0],
1251                            v = ee(_),
1252                            y = f.placement.split("-")[1] || "",
1253                            w = [];
1254                        switch (m.behavior) {
1255                            case ve:
1256                                w = [_, v];
1257                                break;
1258                            case ye:
1259                                w = _e(_);
1260                                break;
1261                            case we:
1262                                w = _e(_, !0);
1263                                break;
1264                            default:
1265                                w = m.behavior
1266                        }
1267                        return w.forEach(function(t, e) {
1268                            if (_ !== t || w.length === e + 1) return f;
1269                            _ = f.placement.split("-")[0], v = ee(_);
1270                            var i, s = f.offsets.popper,
1271                                n = f.offsets.reference,
1272                                o = Math.floor,
1273                                r = "left" === _ && o(s.right) > o(n.left) || "right" === _ && o(s.left) < o(n.right) || "top" === _ && o(s.bottom) > o(n.top) || "bottom" === _ && o(s.top) < o(n.bottom),
1274                                a = o(s.left) < o(g.left),
1275                                l = o(s.right) > o(g.right),
1276                                h = o(s.top) < o(g.top),
1277                                c = o(s.bottom) > o(g.bottom),
1278                                d = "left" === _ && a || "right" === _ && l || "top" === _ && h || "bottom" === _ && c,
1279                                u = -1 !== ["top", "bottom"].indexOf(_),
1280                                p = !!m.flipVariations && (u && "start" === y && a || u && "end" === y && l || !u && "start" === y && h || !u && "end" === y && c);
1281                            (r || d || p) && (f.flipped = !0, (r || d) && (_ = w[e + 1]), p && (y = "end" === (i = y) ? "start" : "start" === i ? "end" : i), f.placement = _ + (y ? "-" + y : ""), f.offsets.popper = Yt({}, f.offsets.popper, ie(f.instance.popper, f.offsets.reference, f.placement)), f = ne(f.instance.modifiers, f, "flip"))
1282                        }), f
1283                    },
1284                    behavior: "flip",
1285                    padding: 5,
1286                    boundariesElement: "viewport"
1287                },
1288                inner: {
1289                    order: 700,
1290                    enabled: !1,
1291                    fn: function(t) {
1292                        var e = t.placement,
1293                            i = e.split("-")[0],
1294                            s = t.offsets,
1295                            n = s.popper,
1296                            o = s.reference,
1297                            r = -1 !== ["left", "right"].indexOf(i),
1298                            a = -1 === ["top", "left"].indexOf(i);
1299                        return n[r ? "left" : "top"] = o[i] - (a ? n[r ? "width" : "height"] : 0), t.placement = ee(e), t.offsets.popper = Vt(n), t
1300                    }
1301                },
1302                hide: {
1303                    order: 800,
1304                    enabled: !0,
1305                    fn: function(t) {
1306                        if (!fe(t.instance.modifiers, "hide", "preventOverflow")) return t;
1307                        var e = t.offsets.reference,
1308                            i = se(t.instance.modifiers, function(t) {
1309                                return "preventOverflow" === t.name
1310                            }).boundaries;
1311                        if (e.bottom < i.top || e.left > i.right || e.top > i.bottom || e.right < i.left) {
1312                            if (!0 === t.hide) return t;
1313                            t.hide = !0, t.attributes["x-out-of-boundaries"] = ""
1314                        } else {
1315                            if (!1 === t.hide) return t;
1316                            t.hide = !1, t.attributes["x-out-of-boundaries"] = !1
1317                        }
1318                        return t
1319                    }
1320                },
1321                computeStyle: {
1322                    order: 850,
1323                    enabled: !0,
1324                    fn: function(t, e) {
1325                        var i = e.x,
1326                            s = e.y,
1327                            n = t.offsets.popper,
1328                            o = se(t.instance.modifiers, function(t) {
1329                                return "applyStyle" === t.name
1330                            }).gpuAcceleration;
1331                        void 0 !== o && console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");
1332                        var r = void 0 !== o ? o : e.gpuAcceleration,
1333                            a = Ft(t.instance.popper),
1334                            l = Kt(a),
1335                            h = {
1336                                position: n.position
1337                            },
1338                            c = ue(t, window.devicePixelRatio < 2 || !pe),
1339                            d = "bottom" === i ? "top" : "bottom",
1340                            u = "right" === s ? "left" : "right",
1341                            p = re("transform"),
1342                            f = void 0,
1343                            m = void 0;
1344                        if (m = "bottom" == d ? "HTML" === a.nodeName ? -a.clientHeight + c.bottom : -l.height + c.bottom : c.top, f = "right" == u ? "HTML" === a.nodeName ? -a.clientWidth + c.right : -l.width + c.right : c.left, r && p) h[p] = "translate3d(" + f + "px, " + m + "px, 0)", h[d] = 0, h[u] = 0, h.willChange = "transform";
1345                        else {
1346                            var g = "bottom" == d ? -1 : 1,
1347                                _ = "right" == u ? -1 : 1;
1348                            h[d] = m * g, h[u] = f * _, h.willChange = d + ", " + u
1349                        }
1350                        var v = {
1351                            "x-placement": t.placement
1352                        };
1353                        return t.attributes = Yt({}, v, t.attributes), t.styles = Yt({}, h, t.styles), t.arrowStyles = Yt({}, t.offsets.arrow, t.arrowStyles), t
1354                    },
1355                    gpuAcceleration: !0,
1356                    x: "bottom",
1357                    y: "right"
1358                },
1359                applyStyle: {
1360                    order: 900,
1361                    enabled: !0,
1362                    fn: function(t) {
1363                        var e, i;
1364                        return de(t.instance.popper, t.styles), e = t.instance.popper, i = t.attributes, Object.keys(i).forEac
vendor: 4,175 bytes, lines 1364-1436
1364h(function(t) {
1365                            !1 !== i[t] ? e.setAttribute(t, i[t]) : e.removeAttribute(t)
1366                        }), t.arrowElement && Object.keys(t.arrowStyles).length && de(t.arrowElement, t.arrowStyles), t
1367                    },
1368                    onLoad: function(t, e, i, s, n) {
1369                        var o = Zt(n, e, t, i.positionFixed),
1370                            r = Gt(i.placement, o, e, t, i.modifiers.flip.boundariesElement, i.modifiers.flip.padding);
1371                        return e.setAttribute("x-placement", r), de(e, {
1372                            position: i.positionFixed ? "fixed" : "absolute"
1373                        }), i
1374                    },
1375                    gpuAcceleration: void 0
1376                }
1377            }
1378        },
1379        xe = (Rt(Ce, [{
1380            key: "update",
1381            value: function() {
1382                return function() {
1383                    if (!this.state.isDestroyed) {
1384                        var t = {
1385                            instance: this,
1386                            styles: {},
1387                            arrowStyles: {},
1388                            attributes: {},
1389                            flipped: !1,
1390                            offsets: {}
1391                        };
1392                        t.offsets.reference = Zt(this.state, this.popper, this.reference, this.options.positionFixed), t.placement = Gt(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.positionFixed = this.options.positionFixed, t.offsets.popper = ie(this.popper, t.offsets.reference, t.placement), t.offsets.popper.position = this.options.positionFixed ? "fixed" : "absolute", t = ne(this.modifiers, t), this.state.isCreated ? this.options.onUpdate(t) : (this.state.isCreated = !0, this.options.onCreate(t))
1393                    }
1394                }.call(this)
1395            }
1396        }, {
1397            key: "destroy",
1398            value: function() {
1399                return function() {
1400                    return this.state.isDestroyed = !0, oe(this.modifiers, "applyStyle") && (this.popper.removeAttribute("x-placement"), this.popper.style.position = "", this.popper.style.top = "", this.popper.style.left = "", this.popper.style.right = "", this.popper.style.bottom = "", this.popper.style.willChange = "", this.popper.style[re("transform")] = ""), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this
1401                }.call(this)
1402            }
1403        }, {
1404            key: "enableEventListeners",
1405            value: function() {
1406                return function() {
1407                    this.state.eventsEnabled || (this.state = le(this.reference, this.options, this.state, this.scheduleUpdate))
1408                }.call(this)
1409            }
1410        }, {
1411            key: "disableEventListeners",
1412            value: function() {
1413                return he.call(this)
1414            }
1415        }]), Ce);
1416
1417    function Ce(t, e) {
1418        var i = this,
1419            s = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};
1420        ! function(t, e) {
1421            if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
1422        }(this, Ce), this.scheduleUpdate = function() {
1423            return requestAnimationFrame(i.update)
1424        }, this.update = St(this.update.bind(this)), this.options = Yt({}, Ce.Defaults, s), this.state = {
1425            isDestroyed: !1,
1426            isCreated: !1,
1427            scrollParents: []
1428        }, this.reference = t && t.jquery ? t[0] : t, this.popper = e && e.jquery ? e[0] : e, this.options.modifiers = {}, Object.keys(Yt({}, Ce.Defaults.modifiers, s.modifiers)).forEach(function(t) {
1429            i.options.modifiers[t] = Yt({}, Ce.Defaults.modifiers[t] || {}, s.modifiers ? s.modifiers[t] : {})
1430        }), this.modifiers = Object.keys(this.options.modifiers).map(function(t) {
1431            return Yt({
1432                name: t
1433            }, i.options.modifiers[t])
1434        }).sort(function(t, e) {
1435            return t.order - e.order
1436        }
1436), this.modifiers.forEach(function(t) {
1437            t.enabled && Mt(t.onLoad) && t.onLoad(i.reference, i.popper, i.options, t, i.state)
1438        }), this.update();
1439        var n = this.options.eventsEnabled;
1440        n && this.enableEventListeners(), this.state.eventsEnabled = n
1441    }
1442    xe.Utils = ("undefined" != typeof window ? window : global).PopperUtils, xe.placements = me, xe.Defaults = ke;
1443    var Te = "dropdown",
1444        Ee = "bs.dropdown",
1445        De = "." + Ee,
1446        Se = ".data-api",
1447        Me = f.fn[Te],
1448        Ie = new RegExp("38|40|27"),
1449        Ae = {
1450            HIDE: "hide" + De,
1451            HIDDEN: "hidden" + De,
1452            SHOW: "show" + De,
1453            SHOWN: "shown" + De,
1454            CLICK: "click" + De,
1455            CLICK_DATA_API: "click" + De + Se,
1456            KEYDOWN_DATA_API: "keydown" + De + Se,
1457            KEYUP_DATA_API: "keyup" + De + Se
1458        },
1459        $e = "disabled",
1460        Oe = "show",
1461        Ne = "dropup",
1462        Pe = "dropright",
1463        Fe = "dropleft",
1464        He = "dropdown-menu-right",
1465        je = "position-static",
1466        Le = '[data-toggle="dropdown"]',
1467        ze = ".dropdown form",
1468        We = ".dropdown-menu",
1469        Ue = ".navbar-nav",
1470        Re = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",
1471        Be = "top-start",
1472        qe = "top-end",
1473        Ye = "bottom-start",
1474        Ve = "bottom-end",
1475        Ke = "right-start",
1476        Qe = "left-start",
1477        Xe = {
1478            offset: 0,
1479            flip: !0,
1480            boundary: "scrollParent",
1481            reference: "toggle",
1482            display: "dynamic"
1483        },
1484        Je = {
1485            offset: "(number|string|function)",
1486            flip: "boolean",
1487            boundary: "(string|element)",
1488            reference: "(string|element)",
1489            display: "string"
1490        },
1491        Ge = function() {
1492            function h(t, e) {
1493                this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners()
1494            }
1495            var t = h.prototype;
1496            return t.toggle = function() {
1497                if (!this._element.disabled && !f(this._element).hasClass($e)) {
1498                    var t = h._getParentFromElement(this._element),
1499                        e = f(this._menu).hasClass(Oe);
1500                    if (h._clearMenus(), !e) {
1501                        var i = {
1502                                relatedTarget: this._element
1503                            },
1504                            s = f.Event(Ae.SHOW, i);
1505                        if (f(t).trigger(s), !s.isDefaultPrevented()) {
1506                            if (!this._inNavbar) {
1507                                if (void 0 === xe) throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");
1508                                var n = this._element;
1509                                "parent" === this._config.reference ? n = t : m.isElement(this._config.reference) && (n = this._config.reference, void 0 !== this._config.reference.jquery && (n = this._config.reference[0])), "scrollParent" !== this._config.boundary && f(t).addClass(je), this._popper = new xe(n, this._menu, this._getPopperConfig())
1510                            }
1511                            "ontouchstart" in document.documentElement && 0 === f(t).closest(Ue).length && f(document.body).children().on("mouseover", null, f.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), f(this._menu).toggleClass(Oe), f(t).toggleClass(Oe).trigger(f.Event(Ae.SHOWN, i))
1512                        }
1513                    }
1514                }
1515            }, t.show = function() {
1516                if (!(this._element.disabled || f(this._element).hasClass($e) || f(this._menu).hasClass(Oe))) {
1517                    var t = {
1518                            relatedTarget: this._element
1519                        },
1520                        e = f.Event(Ae.SHOW, t),
1521                        i = h._getParentFromElement(this._element);
1522                    f(i).trigger(e), e.isDefaultPrevented() || (f(this._menu).toggleClass(Oe), f(i).toggleClass(Oe).trigger(f.Event(Ae.SHOWN, t)))
1523                }
1524            }, t.hide = function() {
1525                if (!this._element.disabled && !f(this._element).hasClass($e) && f(this._menu).hasClass(Oe)) {
1526                    var t = {
1527                            relatedTarget: this._element
1528                        },
1529                        e = f.Event(Ae.HIDE, t),
1530                        i = h._getParentFromElement(this._element);
1531                    f(i).trigger(e), e.isDefaultPrevented() || (f(this._menu).toggleClass(Oe), f(i).toggleClass(Oe).trigger(f.Event(Ae.HIDDEN, t)))
1532                }
1533            }
1533, t.dispose = function() {
1534                f.removeData(this._element, Ee), f(this._element).off(De), this._element = null, (this._menu = null) !== this._popper && (this._popper.destroy(), this._popper = null)
1535            }, t.update = function() {
1536                this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate()
1537            }, t._addEventListeners = function() {
1538                var e = this;
1539                f(this._element).on(Ae.CLICK, function(t) {
1540                    t.preventDefault(), t.stopPropagation(), e.toggle()
1541                })
1542            }, t._getConfig = function(t) {
1543                return t = l({}, this.constructor.Default, f(this._element).data(), t), m.typeCheckConfig(Te, t, this.constructor.DefaultType), t
1544            }, t._getMenuElement = function() {
1545                if (!this._menu) {
1546                    var t = h._getParentFromElement(this._element);
1547                    t && (this._menu = t.querySelector(We))
1548                }
1549                return this._menu
1550            }, t._getPlacement = function() {
1551                var t = f(this._element.parentNode),
1552                    e = Ye;
1553                return t.hasClass(Ne) ? (e = Be, f(this._menu).hasClass(He) && (e = qe)) : t.hasClass(Pe) ? e = Ke : t.hasClass(Fe) ? e = Qe : f(this._menu).hasClass(He) && (e = Ve), e
1554            }, t._detectNavbar = function() {
1555                return 0 < f(this._element).closest(".navbar").length
1556            }, t._getOffset = function() {
1557                var e = this,
1558                    t = {};
1559                return "function" == typeof this._config.offset ? t.fn = function(t) {
1560                    return t.offsets = l({}, t.offsets, e._config.offset(t.offsets, e._element) || {}), t
1561                } : t.offset = this._config.offset, t
1562            }, t._getPopperConfig = function() {
1563                var t = {
1564                    placement: this._getPlacement(),
1565                    modifiers: {
1566                        offset: this._getOffset(),
1567                        flip: {
1568                            enabled: this._config.flip
1569                        },
1570                        preventOverflow: {
1571                            boundariesElement: this._config.boundary
1572                        }
1573                    }
1574                };
1575                return "static" === this._config.display && (t.modifiers.applyStyle = {
1576                    enabled: !1
1577                }), t
1578            }, h._jQueryInterface = function(e) {
1579                return this.each(function() {
1580                    var t = f(this).data(Ee);
1581                    if (t || (t = new h(this, "object" == typeof e ? e : null), f(this).data(Ee, t)), "string" == typeof e) {
1582                        if (void 0 === t[e]) throw new TypeError('No method named "' + e + '"');
1583                        t[e]()
1584                    }
1585                })
1586            }, h._clearMenus = function(t) {
1587                if (!t || 3 !== t.which && ("keyup" !== t.type || 9 === t.which))
1588                    for (var e = [].slice.call(document.querySelectorAll(Le)), i = 0, s = e.length; i < s; i++) {
1589                        var n = h._getParentFromElement(e[i]),
1590                            o = f(e[i]).data(Ee),
1591                            r = {
1592                                relatedTarget: e[i]
1593                            };
1594                        if (t && "click" === t.type && (r.clickEvent = t), o) {
1595                            var a = o._menu;
1596                            if (f(n).hasClass(Oe) && !(t && ("click" === t.type && /input|textarea/i.test(t.target.tagName) || "keyup" === t.type && 9 === t.which) && f.contains(n, t.target))) {
1597                                var l = f.Event(Ae.HIDE, r);
1598                                f(n).trigger(l), l.isDefaultPrevented() || ("ontouchstart" in document.documentElement && f(document.body).children().off("mouseover", null, f.noop), e[i].setAttribute("aria-expanded", "false"), f(a).removeClass(Oe), f(n).removeClass(Oe).trigger(f.Event(Ae.HIDDEN, r)))
1599                            }
1600                        }
1601                    }
1602            }, h._getParentFromElement = function(t) {
1603                var e, i = m.getSelectorFromElement(t);
1604                return i && (e = document.querySelector(i)), e || t.parentNode
1605            }, h._dataApiKeydownHandler = function(t) {
1606                if ((/input|textarea/i.test(t.target.tagName) ? !(32 === t.which || 27 !== t.which && (40 !== t.which && 38 !== t.which || f(t.target).closest(We).length)) : Ie.test(t.which)) && (t.preventDefault(), t.stopPropagation(), !this.disabled && !f(this).hasClass($e))) {
1607                    var e = h._getParentFromElement(this),
1608                        i = f(e).hasClass(Oe);
1609                    if (i && (!i || 27 !== t.which && 32 !== t.which)) {
1610                        var s = [].slice.call(e.querySelectorAll(Re));
1611                        if (0 !== s.length) {
1612                            var n = s.indexOf(t.target);
1613                            38 === t.which && 0 < n && n--, 40 === t.which && n < s.length - 1 && n++, n < 0 && (n = 0), s[n].focus()
1614                        }
1615                    } else {
1616                        if (27 === t.which) {
1617                            var o = e.querySelector(Le);
1618                            f(o).trigger("focus")
1619                        }
1620                        f(this).trigger("click")
1621                    }
1622                }
1623            }, r(h, null, [{
1624                key: "VERSION",
1625                get: function() {
1626                    return "4.3.1"
1627                }
1628            }, {
1629                key: "Default",
1630                get: function() {
1631                    return Xe
1632                }
1633            }, {
1634                key: "DefaultType",
1635                get: function() {
1636                    return Je
1637                }
1638            }]), h
1639        }();
1640    f(document).on(Ae.KEYDOWN_DATA_API, Le, Ge._dataApiKeydownHandler).on(Ae.KEYDOWN_DATA_API, We, Ge._dataApiKeydownHandler).on(Ae.CLICK_DATA_API + " " + Ae.KEYUP_DATA_API, Ge._clearMenus).on(Ae.CLICK_DATA_API, Le, function(t) {
1641        t.preventDefault(), t.stopPropagation(), Ge._jQueryInterface.call(f(this), "toggle")
1642    }).on(Ae.CLICK_DATA_API, ze, function(t) {
1643        t.stopPropagation()
1644    }), f.fn[Te] = Ge._jQueryInterface, f.fn[Te].Constructor = Ge, f.fn[Te].noConflict = function() {
1645        return f.fn[Te] = Me, Ge._jQueryInterface
1646    };
1647    var Ze = "modal",
1648        ti = "bs.modal",
1649        ei = "." + ti,
1650        ii = f.fn[Ze],
1651        si = {
1652            backdrop: !0,
1653            keyboard: !0,
1654            focus: !0,
1655            show: !0
1656        },
1657        ni = {
1658            backdrop: "(boolean|string)",
1659            keyboard: "boolean",
1660            focus: "boolean",
1661            show: "boolean"
1662        },
1663        oi = {
1664            HIDE: "hide" + ei,
1665            HIDDEN: "hidden" + ei,
1666            SHOW: "show" + ei,
1667            SHOWN: "shown" + ei,
1668            FOCUSIN: "focusin" + ei,
1669            RESIZE: "resize" + ei,
1670            CLICK_DISMISS: "click.dismiss" + ei,
1671            KEYDOWN_DISMISS: "keydown.dismiss" + ei,
1672            MOUSEUP_DISMISS: "mouseup.dismiss" + ei,
1673            MOUSEDOWN_DISMISS: "mousedown.dismiss" + ei,
1674            CLICK_DATA_API: "click" + ei + ".data-api"
1675        },
1676        ri = "modal-dialog-scrollable",
1677        ai = "modal-scrollbar-measure",
1678        li = "modal-backdrop",
1679        hi = "modal-open",
1680        ci = "fade",
1681        di = "show",
1682        ui = ".modal-dialog",
1683        pi = ".modal-body",
1684        fi = '[data-toggle="modal"]',
1685        mi = '[data-dismiss="modal"]',
1686        gi = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
1687        _i = ".sticky-top",
1688        vi = function() {
1689            function n(t, e) {
1690                this._config = this._getConfig(e), this._element = t, this._dialog = t.querySelector(ui), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollbarWidth = 0
1691            }
1692            var t = n.prototype;
1693            return t.toggle = function(t) {
1694                return this._isShown ? this.hide() : this.show(t)
1695            }, t.show = function(t) {
1696                var e = this;
1697                if (!this._isShown && !this._isTransitioning) {
1698                    f(this._element).hasClass(ci) && (this._isTransitioning = !0);
1699                    var i = f.Event(oi.SHOW, {
1700                        relatedTarget: t
1701                    });
1702                    f(this._element).trigger(i), this._isShown || i.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), f(this._element).on(oi.CLICK_DISMISS, mi, function(t) {
1703                        return e.hide(t)
1704                    }), f(this._dialog).on(oi.MOUSEDOWN_DISMISS, function() {
1705                        f(e._element).one(oi.MOUSEUP_DISMISS, function(t) {
1706                            f(t.target).is(e._element) && (e._ignoreBackdropClick = !0)
1707                        })
1708                    }), this._showBackdrop(function() {
1709                        return e._showElement(t)
1710                    }))
1711                }
1712            }, t.hide = function(t) {
1713                var e = this;
1714                if (t && t.preventDefault(), this._isShown && !this._isTransitioning) {
1715                    var i = f.Event(oi.HIDE);
1716                    if (f(this._element).trigger(i), this._isShown && !i.isDefaultPrevented()) {
1717                        this._isShown = !1;
1718                        var s = f(this._element).hasClass(ci);
1719                        if (s && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), f(document).off(oi.FOCUSIN), f(this._element).removeClass(di), f(this._element).off(oi.CLICK_DISMISS), f(this._dialog).off(oi.MOUSEDOWN_DISMISS), s) {
1720                            var n = m.getTransitionDurationFromElement(this._element);
1721                            f(this._element).one(m.TRANSITION_END, function(t) {
1722                                return e._hideModal(t)
1723                            }).emulateTransitionEnd(n)
1724                        } else this._hideModal()
1725                    }
1726                }
1727            }, t.dispose = function() {
1728                [window, this._element, this._dialog].forEach(function(t) {
1729                    return f(t).off(ei)
1730                }), f(document).off(oi.FOCUSIN), f.removeData(this._element, ti), 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
1731            }, t.handleUpdate = function() {
1732                this._adjustDialog()
1733            }, t._getConfig = function(t) {
1734                return t = l({}, si, t), m.typeCheckConfig(Ze, t, ni), t
1735            }, t._showElement = function(t) {
1736                var e = this,
1737                    i = f(this._element).hasClass(ci);
1738                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), f(this._dialog).hasClass(ri) ? this._dialog.querySelector(pi).scrollTop = 0 : this._element.scrollTop = 0, i && m.reflow(this._element), f(this._element).addClass(di), this._config.focus && this._enforceFocus();
1739
1740                function s() {
1741                    e._config.focus && e._element.focus(), e._isTransitioning = !1, f(e._element).trigger(n)
1742                }
1743                var n = f.Event(oi.SHOWN, {
1744                    relatedTarget: t
1745                });
1746                if (i) {
1747                    var o = m.getTransitionDurationFromElement(this._dialog);
1748                    f(this._dialog).one(m.TRANSITION_END, s).emulateTransitionEnd(o)
1749                } else s()
1750            }, t._enforceFocus = function() {
1751                var e = this;
1752                f(document).off(oi.FOCUSIN).on(oi.FOCUSIN, function(t) {
1753                    document !== t.target && e._element !== t.target && 0 === f(e._element).has(t.target).length && e._element.focus()
1754                })
1755            }, t._setEscapeEvent = function() {
1756                var e = this;
1757                this._isShown && this._config.keyboard ? f(this._element).on(oi.KEYDOWN_DISMISS, function(t) {
1758                    27 === t.which && (t.preventDefault(), e.hide())
1759                }) : this._isShown || f(this._element).off(oi.KEYDOWN_DISMISS)
1760            }, t._setResizeEvent = function() {
1761                var e = this;
1762                this._isShown ? f(window).on(oi.RESIZE, function(t) {
1763                    return e.handleUpdate(t)
1764                }) : f(window).off(oi.RESIZE)
1765            }, t._hideModal = function() {
1766                var t = this;
1767                this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._isTransitioning = !1, this._showBackdrop(function() {
1768                    f(document.body).removeClass(hi), t._resetAdjustments(), t._resetScrollbar(), f(t._element).trigger(oi.HIDDEN)
1769                })
1770            }, t._removeBackdrop = function() {
1771                this._backdrop && (f(this._backdrop).remove(), this._backdrop = null)
1772            }, t._showBackdrop = function(t) {
1773                var e = this,
1774                    i = f(this._element).hasClass(ci) ? ci : "";
1775                if (this._isShown && this._config.backdrop) {
1776                    if (this._backdrop = document.createElement("div"), this._backdrop.className = li, i && this._backdrop.classList.add(i), f(this._backdrop).appendTo(document.body), f(this._element).on(oi.CLICK_DISMISS, function(t) {
1777                            e._ignoreBackdropClick ? e._ignoreBackdropClick = !1 : t.target === t.currentTarget && ("static" === e._config.backdrop ? e._element.focus() : e.hide())
1778                        }), i && m.reflow(this._backdrop), f(this._backdrop).addClass(di), !t) return;
1779                    if (!i) return void t();
1780                    var s = m.getTransitionDurationFromElement(this._backdrop);
1781                    f(this._backdrop).one(m.TRANSITION_END, t).emulateTransitionEnd(s)
1782                } else if (!this._isShown && this._backdrop) {
1783                    f(this._backdrop).removeClass(di);
1784                    var n = function() {
1785                        e._removeBackdrop(), t && t()
1786                    };
1787                    if (f(this._element).hasClass(ci)) {
1788                        var o = m.getTransitionDurationFromElement(this._backdrop);
1789                        f(this._backdrop).one(m.TRANSITION_END, n).emulateTransitionEnd(o)
1790                    } else n()
1791                } else t && t()
1792            }, t._adjustDialog = function() {
1793                var t = this._element.scrollHeight > document.documentElement.clientHeight;
1794                !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + "px")
1795            }, t._resetAdjustments = function() {
1796                this._element.style.paddingLeft = "", this._element.style.paddingRight = ""
1797            }, t._checkScrollbar = function() {
1798                var t = document.body.getBoundingClientRect();
1799                this._isBodyOverflowing = t.left + t.right < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth()
1800            }, t._setScrollbar = function() {
1801                var n = this;
1802                if (this._isBodyOverflowing) {
1803                    var t = [].slice.call(document.querySelectorAll(gi)),
1804                        e = [].slice.call(document.querySelectorAll(_i));
1805                    f(t).each(function(t, e) {
1806                        var i = e.style.paddingRight,
1807                            s = f(e).css("padding-right");
1808                        f(e).data("padding-right", i).css("padding-right", parseFloat(s) + n._scrollbarWidth + "px")
1809                    }), f(e).each(function(t, e) {
1810                        var i = e.style.marginRight,
1811                            s = f(e).css("margin-right");
1812                        f(e).data("margin-right", i).css("margin-right", parseFloat(s) - n._scrollbarWidth + "px")
1813                    });
1814                    var i = document.body.style.paddingRight,
1815                        s = f(document.body).css("padding-right");
1816                    f(document.body).data("padding-right", i).css("padding-right", parseFloat(s) + this._scrollbarWidth + "px")
1817                }
1818                f(document.body).addClass(hi)
1819            }, t._resetScrollbar = function() {
1820                var t = [].slice.call(document.querySelectorAll(gi));
1821                f(t).each(function(t, e) {
1822                    var i = f(e).data("padding-right");
1823                    f(e).removeData("padding-right"), e.style.paddingRight = i || ""
1824                });
1825                var e = [].slice.call(document.querySelectorAll("" + _i));
1826                f(e).each(function(t, e) {
1827                    var i = f(e).data("margin-right");
1828                    void 0 !== i && f(e).css("margin-right", i).removeData("margin-right")
1829                });
1830                var i = f(document.body).data("padding-right");
1831                f(document.body).removeData("padding-right"), document.body.style.paddingRight = i || ""
1832            }, t._getScrollbarWidth = function() {
1833                var t = document.createElement("div");
1834                t.className = ai, document.body.appendChild(t);
1835                var e = t.getBoundingClientRect().width - t.clientWidth;
1836                return document.body.removeChild(t), e
1837            }, n._jQueryInterface = function(i, s) {
1838                return this.each(function() {
1839                    var t = f(this).data(ti),
1840                        e = l({}, si, f(this).data(), "object" == typeof i && i ? i : {});
1841                    if (t || (t = new n(this, e), f(this).data(ti, t)), "string" == typeof i) {
1842                        if (void 0 === t[i]) throw new TypeError('No method named "' + i + '"');
1843                        t[i](s)
1844                    } else e.show && t.show(s)
1845                })
1846            }, r(n, null, [{
1847                key: "VERSION",
1848                get: function() {
1849                    return "4.3.1"
1850                }
1851            }, {
1852                key: "Default",
1853                get: function() {
1854                    return si
1855                }
1856            }]), n
1857        }();
1858    f(document).on(oi.CLICK_DATA_API, fi, function(t) {
1859        var e, i = this,
1860            s = m.getSelectorFromElement(this);
1861        s && (e = document.querySelector(s));
1862        var n = f(e).data(ti) ? "toggle" : l({}, f(e).data(), f(this).data());
1863        "A" !== this.tagName && "AREA" !== this.tagName || t.preventDefault();
1864        var o = f(e).one(oi.SHOW, function(t) {
1865            t.isDefaultPrevented() || o.one(oi.HIDDEN, function() {
1866                f(i).is(":visible") && i.focus()
1867            })
1868        });
1869        vi._jQueryInterface.call(f(e), n, this)
1870    }), f.fn[Ze] = vi._jQueryInterface, f.fn[Ze].Constructor = vi, f.fn[Ze].noConflict = function() {
1871        return f.fn[Ze] = ii, vi._jQueryInterface
1872    };
1873    var yi = ["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"],
1874        wi = {
1875            "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
1876            a: ["target", "href", "title", "rel"],
1877            area: [],
1878            b: [],
1879            br: [],
1880            col: [],
1881            code: [],
1882            div: [],
1883            em: [],
1884            hr: [],
1885            h1: [],
1886            h2: [],
1887            h3: [],
1888            h4: [],
1889            h5: [],
1890            h6: [],
1891            i: [],
1892            img: ["src", "alt", "title", "width", "height"],
1893            li: [],
1894            ol: [],
1895            p: [],
1896            pre: [],
1897            s: [],
1898            small: [],
1899            span: [],
1900            sub: [],
1901            sup: [],
1902            strong: [],
1903            u: [],
1904            ul: []
1905        },
1906        bi = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,
1907        ki = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;
1908
1909    function xi(t, o, e) {
1910        if (0 === t.length) return t;
1911        if (e && "function" == typeof e) return e(t);
1912        for (var i = (new window.DOMParser).parseFromString(t, "text/html"), r = Object.keys(o), a = [].slice.call(i.body.querySelectorAll("*")), s = function(t) {
1913                var e = a[t],
1914                    i = e.nodeName.toLowerCase();
1915                if (-1 === r.indexOf(e.nodeName.toLowerCase())) return e.parentNode.removeChild(e), "continue";
1916                var s = [].slice.call(e.attributes),
1917                    n = [].concat(o["*"] || [], o[i] || []);
1918                s.forEach(function(t) {
1919                    ! function(t, e) {
1920                        var i = t.nodeName.toLowerCase();
1921                        if (-1 !== e.indexOf(i)) return -1 === yi.indexOf(i) || Boolean(t.nodeValue.match(bi) || t.nodeValue.match(ki));
1922                        for (var s = e.filter(function(t) {
1923                                return t instanceof RegExp
1924                            }), n = 0, o = s.length; n < o; n++)
1925                            if (i.match(s[n])) return 1
1926                    }(t, n) && e.removeAttribute(t.nodeName)
1927                })
1928            }, n = 0, l = a.length; n < l; n++) s(n);
1929        return i.body.innerHTML
1930    }
1931    var Ci = "tooltip",
1932        Ti = "bs.tooltip",
1933        Ei = "." + Ti,
1934        Di = f.fn[Ci],
1935        Si = "bs-tooltip",
1936        Mi = new RegExp("(^|\\s)" + Si + "\\S+", "g"),
1937        Ii = ["sanitize", "whiteList", "sanitizeFn"],
1938        Ai = {
1939            animation: "boolean",
1940            template: "string",
1941            title: "(string|element|function)",
1942            trigger: "string",
1943            delay: "(number|object)",
1944            html: "boolean",
1945            selector: "(string|boolean)",
1946            placement: "(string|function)",
1947            offset: "(number|string|function)",
1948            container: "(string|element|boolean)",
1949            fallbackPlacement: "(string|array)",
1950            boundary: "(string|element)",
1951            sanitize: "boolean",
1952            sanitizeFn: "(null|function)",
1953            whiteList: "object"
1954        },
1955        $i = {
1956            AUTO: "auto",
1957            TOP: "top",
1958            RIGHT: "right",
1959            BOTTOM: "bottom",
1960            LEFT: "left"
1961        },
1962        Oi = {
1963            animation: !0,
1964            template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',
1965            trigger: "hover focus",
1966            title: "",
1967            delay: 0,
1968            html: !1,
1969            selector: !1,
1970            placement: "top",
1971            offset: 0,
1972            container: !1,
1973            fallbackPlacement: "flip",
1974            boundary: "scrollParent",
1975            sanitize: !0,
1976            sanitizeFn: null,
1977            whiteList: wi
1978        },
1979        Ni = "show",
1980        Pi = "out",
1981        Fi = {
1982            HIDE: "hide" + Ei,
1983            HIDDEN: "hidden" + Ei,
1984            SHOW: "show" + Ei,
1985            SHOWN: "shown" + Ei,
1986            INSERTED: "inserted" + Ei,
1987            CLICK: "click" + Ei,
1988            FOCUSIN: "focusin" + Ei,
1989            FOCUSOUT: "focusout" + Ei,
1990            MOUSEENTER: "mouseenter" + Ei,
1991            MOUSELEAVE: "mouseleave" + Ei
1992        },
1993        Hi = "fade",
1994        ji = "show",
1995        Li = ".tooltip-inner",
1996        zi = ".arrow",
1997        Wi = "hover",
1998        Ui = "focus",
1999        Ri = "click",
2000        Bi = "manual",
2001        qi = function() {
2002            function s(t, e) {
2003                if (void 0 === xe) throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");
2004                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()
2005            }
2006            var t = s.prototype;
2007            return t.enable = function() {
2008                this._isEnabled = !0
2009            }, t.disable = function() {
2010                this._isEnabled = !1
2011            }, t.toggleEnabled = function() {
2012                this._isEnabled = !this._isEnabled
2013            }, t.toggle = function(t) {
2014                if (this._isEnabled)
2015                    if (t) {
2016                        var e = this.constructor.DATA_KEY,
2017                            i = f(t.currentTarget).data(e);
2018                        i || (i = new this.constructor(t.currentTarget, this._getDelegateConfig()), f(t.currentTarget).data(e, i)), i._activeTrigger.click = !i._activeTrigger.click, i._isWithActiveTrigger() ? i._enter(null, i) : i._leave(null, i)
2019                    } else {
2020                        if (f(this.getTipElement()).hasClass(ji)) return void this._leave(null, this);
2021                        this._enter(null, this)
2022                    }
2023            }
2023, t.dispose = function() {
2024                clearTimeout(this._timeout), f.removeData(this.element, this.constructor.DATA_KEY), f(this.element).off(this.constructor.EVENT_KEY), f(this.element).closest(".modal").off("hide.bs.modal"), this.tip && f(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
2025            }, t.show = function() {
2026                var e = this;
2027                if ("none" === f(this.element).css("display")) throw new Error("Please use show on visible elements");
2028                var t = f.Event(this.constructor.Event.SHOW);
2029                if (this.isWithContent() && this._isEnabled) {
2030                    f(this.element).trigger(t);
2031                    var i = m.findShadowRoot(this.element),
2032                        s = f.contains(null !== i ? i : this.element.ownerDocument.documentElement, this.element);
2033                    if (t.isDefaultPrevented() || !s) return;
2034                    var n = this.getTipElement(),
2035                        o = m.getUID(this.constructor.NAME);
2036                    n.setAttribute("id", o), this.element.setAttribute("aria-describedby", o), this.setContent(), this.config.animation && f(n).addClass(Hi);
2037                    var r = "function" == typeof this.config.placement ? this.config.placement.call(this, n, this.element) : this.config.placement,
2038                        a = this._getAttachment(r);
2039                    this.addAttachmentClass(a);
2040                    var l = this._getContainer();
2041                    f(n).data(this.constructor.DATA_KEY, this), f.contains(this.element.ownerDocument.documentElement, this.tip) || f(n).appendTo(l), f(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new xe(this.element, n, {
2042                        placement: a,
2043                        modifiers: {
2044                            offset: this._getOffset(),
2045                            flip: {
2046                                behavior: this.config.fallbackPlacement
2047                            },
2048                            arrow: {
2049                                element: zi
2050                            },
2051                            preventOverflow: {
2052                                boundariesElement: this.config.boundary
2053                            }
2054                        },
2055                        onCreate: function(t) {
2056                            t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t)
2057                        },
2058                        onUpdate: function(t) {
2059                            return e._handlePopperPlacementChange(t)
2060                        }
2061                    }), f(n).addClass(ji), "ontouchstart" in document.documentElement && f(document.body).children().on("mouseover", null, f.noop);
2062                    var h = function() {
2063                        e.config.animation && e._fixTransition();
2064                        var t = e._hoverState;
2065                        e._hoverState = null, f(e.element).trigger(e.constructor.Event.SHOWN), t === Pi && e._leave(null, e)
2066                    };
2067                    if (f(this.tip).hasClass(Hi)) {
2068                        var c = m.getTransitionDurationFromElement(this.tip);
2069                        f(this.tip).one(m.TRANSITION_END, h).emulateTransitionEnd(c)
2070                    } else h()
2071                }
2072            }, t.hide = function(t) {
2073                function e() {
2074                    i._hoverState !== Ni && s.parentNode && s.parentNode.removeChild(s), i._cleanTipClass(), i.element.removeAttribute("aria-describedby"), f(i.element).trigger(i.constructor.Event.HIDDEN), null !== i._popper && i._popper.destroy(), t && t()
2075                }
2076                var i = this,
2077                    s = this.getTipElement(),
2078                    n = f.Event(this.constructor.Event.HIDE);
2079                if (f(this.element).trigger(n), !n.isDefaultPrevented()) {
2080                    if (f(s).removeClass(ji), "ontouchstart" in document.documentElement && f(document.body).children().off("mouseover", null, f.noop), this._activeTrigger[Ri] = !1, this._activeTrigger[Ui] = !1, this._activeTrigger[Wi] = !1, f(this.tip).hasClass(Hi)) {
2081                        var o = m.getTransitionDurationFromElement(s);
2082                        f(s).one(m.TRANSITION_END, e).emulateTransitionEnd(o)
2083                    } else e();
2084                    this._hoverState = ""
2085                }
2086            }, t.update = function() {
2087                null !== this._popper && this._popper.scheduleUpdate()
2088            }, t.isWithContent = function() {
2089                return Boolean(this.getTitle())
2090            }, t.addAttachmentClass = function(t) {
2091                f(this.getTipElement()).addClass(Si + "-" + t)
2092            }, t.getTipElement = function() {
2093                return this.tip = this.tip || f(this.config.template)[0], this.tip
2094            }, t.setContent = function() {
2095                var t = this.getTipElement();
2096                this.setElementContent(f(t.querySelectorAll(Li)), this.getTitle()), f(t).removeClass(Hi + " " + ji)
2097            }, t.setElementContent = function(t, e) {
2098                "object" != typeof e || !e.nodeType && !e.jquery ? this.config.html ? (this.config.sanitize && (e = xi(e, this.config.whiteList, this.config.sanitizeFn)), t.html(e)) : t.text(e) : this.config.html ? f(e).parent().is(t) || t.empty().append(e) : t.text(f(e).text())
2099            }, t.getTitle = function() {
2100                var t = this.element.getAttribute("data-original-title");
2101                return t = t || ("function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title)
2102            }, t._getOffset = function() {
2103                var e = this,
2104                    t = {};
2105                return "function" == typeof this.config.offset ? t.fn = function(t) {
2106                    return t.offsets = l({}, t.offsets, e.config.offset(t.offsets, e.element) || {}), t
2107                } : t.offset = this.config.offset, t
2108            }, t._getContainer = function() {
2109                return !1 === this.config.container ? document.body : m.isElement(this.config.container) ? f(this.config.container) : f(document).find(this.config.container)
2110            }, t._getAttachment = function(t) {
2111                return $i[t.toUpperCase()]
2112            }, t._setListeners = function() {
2113                var s = this;
2114                this.config.trigger.split(" ").forEach(function(t) {
2115                    if ("click" === t) f(s.element).on(s.constructor.Event.CLICK, s.config.selector, function(t) {
2116                        return s.toggle(t)
2117                    });
2118                    else if (t !== Bi) {
2119                        var e = t === Wi ? s.constructor.Event.MOUSEENTER : s.constructor.Event.FOCUSIN,
2120                            i = t === Wi ? s.constructor.Event.MOUSELEAVE : s.constructor.Event.FOCUSOUT;
2121                        f(s.element).on(e, s.config.selector, function(t) {
2122                            return s._enter(t)
2123                        }).on(i, s.config.selector, function(t) {
2124                            return s._leave(t)
2125                        })
2126                    }
2127                }), f(this.element).closest(".modal").on("hide.bs.modal", function() {
2128                    s.element && s.hide()
2129                }), this.config.selector ? this.config = l({}, this.config, {
2130                    trigger: "manual",
2131                    selector: ""
2132                }) : this._fixTitle()
2133            }, t._fixTitle = function() {
2134                var t = typeof this.element.getAttribute("data-original-title");
2135                !this.element.getAttribute("title") && "string" == t || (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", ""))
2136            }, t._enter = function(t, e) {
2137                var i = this.constructor.DATA_KEY;
2138                (e = e || f(t.currentTarget).data(i)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), f(t.currentTarget).data(i, e)), t && (e._activeTrigger["focusin" === t.type ? Ui : Wi] = !0), f(e.getTipElement()).hasClass(ji) || e._hoverState === Ni ? e._hoverState = Ni : (clearTimeout(e._timeout), e._hoverState = Ni, e.config.delay && e.config.delay.show ? e._timeout = setTimeout(function() {
2139                    e._hoverState === Ni && e.show()
2140                }, e.config.delay.show) : e.show())
2141            }, t._leave = function(t, e) {
2142                var i = this.constructor.DATA_KEY;
2143                (e = e || f(t.currentTarget).data(i)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), f(t.currentTarget).data(i, e)), t && (e._activeTrigger["focusout" === t.type ? Ui : Wi] = !1), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = Pi, e.config.delay && e.config.delay.hide ? e._timeout = setTimeout(function() {
2144                    e._hoverState === Pi && e.hide()
2145                }, e.config.delay.hide) : e.hide())
2146            }, t._isWithActiveTrigger = function() {
2147                for (var t in this._activeTrigger)
2148                    if (this._activeTrigger[t]) return !0;
2149                return !1
2150            }, t._getConfig = function(t) {
2151                var e = f(this.element).data();
2152                return Object.keys(e).forEach(function(t) {
2153                    -1 !== Ii.indexOf(t) && delete e[t]
2154                }), "number" == typeof(t = l({}, this.constructor.Default, e, "object" == typeof t && t ? t : {})).delay && (t.delay = {
2155                    show: t.delay,
2156                    hide: t.delay
2157                }), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), m.typeCheckConfig(Ci, t, this.constructor.DefaultType), t.sanitize && (t.template = xi(t.template, t.whiteList, t.sanitizeFn)), t
2158            }, t._getDelegateConfig = function() {
2159                var t = {};
2160                if (this.config)
2161                    for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]);
2162                return t
2163            }, t._cleanTipClass = function() {
2164                var t = f(this.getTipElement()),
2165                    e = t.attr("class").match(Mi);
2166                null !== e && e.length && t.removeClass(e.join(""))
2167            }, t._handlePopperPlacementChange = function(t) {
2168                var e = t.instance;
2169                this.tip = e.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement))
2170            }, t._fixTransition = function() {
2171                var t = this.getTipElement(),
2172                    e = this.config.animation;
2173                null === t.getAttribute("x-placement") && (f(t).removeClass(Hi), this.config.animation = !1, this.hide(), this.show(), this.config.animation = e)
2174            }, s._jQueryInterface = function(i) {
2175                return this.each(function() {
2176                    var t = f(this).data(Ti),
2177                        e = "object" == typeof i && i;
2178                    if ((t || !/dispose|hide/.test(i)) && (t || (t = new s(this, e), f(this).data(Ti, t)), "string" == typeof i)) {
2179                        if (void 0 === t[i]) throw new TypeError('No method n
2179amed "' + i + '"');
2180                        t[i]()
2181                    }
2182                })
2183            }, r(s, null, [{
2184                key: "VERSION",
2185                get: function() {
2186                    return "4.3.1"
2187                }
2188            }, {
2189                key: "Default",
2190                get: function() {
2191                    return Oi
2192                }
2193            }, {
2194                key: "NAME",
2195                get: function() {
2196                    return Ci
2197                }
2198            }, {
2199                key: "DATA_KEY",
2200                get: function() {
2201                    return Ti
2202                }
2203            }, {
2204                key: "Event",
2205                get: function() {
2206                    return Fi
2207                }
2208            }, {
2209                key: "EVENT_KEY",
2210                get: function() {
2211                    return Ei
2212                }
2213            }, {
2214                key: "DefaultType",
2215                get: function() {
2216                    return Ai
2217                }
2218            }]), s
2219        }();
2220    f.fn[Ci] = qi._jQueryInterface, f.fn[Ci].Constructor = qi, f.fn[Ci].noConflict = function() {
2221        return f.fn[Ci] = Di, qi._jQueryInterface
2222    };
2223    var Yi = "popover",
2224        Vi = "bs.popover",
2225        Ki = "." + Vi,
2226        Qi = f.fn[Yi],
2227        Xi = "bs-popover",
2228        Ji = new RegExp("(^|\\s)" + Xi + "\\S+", "g"),
2229        Gi = l({}, qi.Default, {
2230            placement: "right",
2231            trigger: "click",
2232            content: "",
2233            template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
2234        }),
2235        Zi = l({}, qi.DefaultType, {
2236            content: "(string|element|function)"
2237        }),
2238        ts = "fade",
2239        es = "show",
2240        is = ".popover-header",
2241        ss = ".popover-body",
2242        ns = {
2243            HIDE: "hide" + Ki,
2244            HIDDEN: "hidden" + Ki,
2245            SHOW: "show" + Ki,
2246            SHOWN: "shown" + Ki,
2247            INSERTED: "inserted" + Ki,
2248            CLICK: "click" + Ki,
2249            FOCUSIN: "focusin" + Ki,
2250            FOCUSOUT: "focusout" + Ki,
2251            MOUSEENTER: "mouseenter" + Ki,
2252            MOUSELEAVE: "mouseleave" + Ki
2253        },
2254        os = function(t) {
2255            var e, i;
2256
2257            function s() {
2258                return t.apply(this, arguments) || this
2259            }
2260            i = t, (e = s).prototype = Object.create(i.prototype), (e.prototype.constructor = e).__proto__ = i;
2261            var n = s.prototype;
2262            return n.isWithContent = function() {
2263                return this.getTitle() || this._getContent()
2264            }, n.addAttachmentClass = function(t) {
2265                f(this.getTipElement()).addClass(Xi + "-" + t)
2266            }, n.getTipElement = function() {
2267                return this.tip = this.tip || f(this.config.template)[0], this.tip
2268            }, n.setContent = function() {
2269                var t = f(this.getTipElement());
2270                this.setElementContent(t.find(is), this.getTitle());
2271                var e = this._getContent();
2272                "function" == typeof e && (e = e.call(this.element)), this.setElementContent(t.find(ss), e), t.removeClass(ts + " " + es)
2273            }, n._getContent = function() {
2274                return this.element.getAttribute("data-content") || this.config.content
2275            }, n._cleanTipClass = function() {
2276                var t = f(this.getTipElement()),
2277                    e = t.attr("class").match(Ji);
2278                null !== e && 0 < e.length && t.removeClass(e.join(""))
2279            }, s._jQueryInterface = function(i) {
2280                return this.each(function() {
2281                    var t = f(this).data(Vi),
2282                        e = "object" == typeof i ? i : null;
2283                    if ((t || !/dispose|hide/.test(i)) && (t || (t = new s(this, e), f(this).data(Vi, t)), "string" == typeof i)) {
2284                        if (void 0 === t[i]) throw new TypeError('No method named "' + i + '"');
2285                        t[i]()
2286                    }
2287                })
2288            }, r(s, null, [{
2289                key: "VERSION",
2290                get: function() {
2291                    return "4.3.1"
2292                }
2293            }, {
2294                key: "Default",
2295                get: function() {
2296                    return Gi
2297                }
2298            }, {
2299                key: "NAME",
2300                get: function() {
2301                    return Yi
2302                }
2303            }, {
2304                key: "DATA_KEY",
2305                get: function() {
2306                    return Vi
2307                }
2308            }, {
2309                key: "Event",
2310                get: function() {
2311                    return ns
2312                }
2313            }, {
2314                key: "EVENT_KEY",
2315                get: function() {
2316                    return Ki
2317                }
2318            }, {
2319                key: "DefaultType",
2320                get: function() {
2321                    return Zi
2322                }
2323            }]), s
2324        }(qi);
2325    f.fn[Yi] = os._jQueryInterface, f.fn[Yi].Constructor = os, f.fn[Yi].noConflict = function() {
2326        return f.fn[Yi] = Qi, os._jQueryInterface
2327    };
2328    var rs = "scrollspy",
2329        as = "bs.scrollspy",
2330        ls = "." + as,
2331        hs = f.fn[rs],
2332        cs = {
2333            offset: 10,
2334            method: "auto",
2335            target: ""
2336        },
2337        ds = {
2338            offset: "number",
2339            method: "string",
2340            target: "(string|element)"
2341        },
2342        us = {
2343            ACTIVATE: "activate" + ls,
2344            SCROLL: "scroll" + ls,
2345            LOAD_DATA_API: "load" + ls + ".data-api"
2346        },
2347        ps = "dropdown-item",
2348        fs = "active",
2349        ms = '[data-spy="scroll"]',
2350        gs = ".nav, .list-group",
2351        _s = ".nav-link",
2352        vs = ".nav-item",
2353        ys = ".list-group-item",
2354        ws = ".dropdown",
2355        bs = ".dropdown-item",
2356        ks = ".dropdown-toggle",
2357        xs = "offset",
2358        Cs = "position",
2359        Ts = function() {
2360            function i(t, e) {
2361                var i = this;
2362                this._element = t, this._scrollElement = "BODY" === t.tagName ? window : t, this._config = this._getConfig(e), this._selector = this._config.target + " " + _s + "," + this._config.target + " " + ys + "," + this._config.target + " " + bs, this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, f(this._scrollElement).on(us.SCROLL, function(t) {
2363                    return i._process(t)
2364                }), this.refresh(), this._process()
2365            }
2366            var t = i.prototype;
2367            return t.refresh = function() {
2368                var e = this,
2369                    t = this._scrollElement === this._scrollElement.window ? xs : Cs,
2370                    n = "auto" === this._config.method ? t : this._config.method,
2371                    o = n === Cs ? this._getScrollTop() : 0;
2372                this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map(function(t) {
2373                    var e, i = m.getSelectorFromElement(t);
2374                    if (i && (e = document.querySelector(i)), e) {
2375                        var s = e.getBoundingClientRect();
2376                        if (s.width || s.height) return [f(e)[n]().top + o, i]
2377                    }
2378                    return null
2379                }).filter(function(t) {
2380                    return t
2381                }).sort(function(t, e) {
2382                    return t[0] - e[0]
2383                }
2383).forEach(function(t) {
2384                    e._offsets.push(t[0]), e._targets.push(t[1])
2385                })
2386            }, t.dispose = function() {
2387                f.removeData(this._element, as), f(this._scrollElement).off(ls), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null
2388            }, t._getConfig = function(t) {
2389                if ("string" != typeof(t = l({}, cs, "object" == typeof t && t ? t : {})).target) {
2390                    var e = f(t.target).attr("id");
2391                    e || (e = m.getUID(rs), f(t.target).attr("id", e)), t.target = "#" + e
2392                }
2393                return m.typeCheckConfig(rs, t, ds), t
2394            }, t._getScrollTop = function() {
2395                return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop
2396            }, t._getScrollHeight = function() {
2397                return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)
2398            }, t._getOffsetHeight = function() {
2399                return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height
2400            }, t._process = function() {
2401                var t = this._getScrollTop() + this._config.offset,
2402                    e = this._getScrollHeight(),
2403                    i = this._config.offset + e - this._getOffsetHeight();
2404                if (this._scrollHeight !== e && this.refresh(), i <= t) {
2405                    var s = this._targets[this._targets.length - 1];
2406                    this._activeTarget !== s && this._activate(s)
2407                } else {
2408                    if (this._activeTarget && t < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear();
2409                    for (var n = this._offsets.length; n--;) {
2410                        this._activeTarget !== this._targets[n] && t >= this._offsets[n] && (void 0 === this._offsets[n + 1] || t < this._offsets[n + 1]) && this._activate(this._targets[n])
2411                    }
2412                }
2413            }, t._activate = function(e) {
2414                this._activeTarget = e, this._clear();
2415                var t = this._selector.split(",").map(function(t) {
2416                        return t + '[data-target="' + e + '"],' + t + '[href="' + e + '"]'
2417                    }),
2418                    i = f([].slice.call(document.querySelectorAll(t.join(","))));
2419                i.hasClass(ps) ? (i.closest(ws).find(ks).addClass(fs), i.addClass(fs)) : (i.addClass(fs), i.parents(gs).prev(_s + ", " + ys).addClass(fs), i.parents(gs).prev(vs).children(_s).addClass(fs)), f(this._scrollElement).trigger(us.ACTIVATE, {
2420                    relatedTarget: e
2421                })
2422            }, t._clear = function() {
2423                [].slice.call(document.querySelectorAll(this._selector)).filter(function(t) {
2424                    return t.classList.contains(fs)
2425                }
2425).forEach(function(t) {
2426                    return t.classList.remove(fs)
2427                })
2428            }, i._jQueryInterface = function(e) {
2429                return this.each(function() {
2430                    var t = f(this).data(as);
2431                    if (t || (t = new i(this, "object" == typeof e && e), f(this).data(as, t)), "string" == typeof e) {
2432                        if (void 0 === t[e]) throw new TypeError('No method named "' + e + '"');
2433                        t[e]()
2434                    }
2435                })
2436            }, r(i, null, [{
2437                key: "VERSION",
2438                get: function() {
2439                    return "4.3.1"
2440                }
2441            }, {
2442                key: "Default",
2443                get: function() {
2444                    return cs
2445                }
2446            }]), i
2447        }();
2448    f(window).on(us.LOAD_DATA_API, function() {
2449        for (var t = [].slice.call(document.querySelectorAll(ms)), e = t.length; e--;) {
2450            var i = f(t[e]);
2451            Ts._jQueryInterface.call(i, i.data())
2452        }
2453    }), f.fn[rs] = Ts._jQueryInterface, f.fn[rs].Constructor = Ts, f.fn[rs].noConflict = function() {
2454        return f.fn[rs] = hs, Ts._jQueryInterface
2455    };
2456    var Es = "bs.tab",
2457        Ds = "." + Es,
2458        Ss = f.fn.tab,
2459        Ms = {
2460            HIDE: "hide" + Ds,
2461            HIDDEN: "hidden" + Ds,
2462            SHOW: "show" + Ds,
2463            SHOWN: "shown" + Ds,
2464            CLICK_DATA_API: "click" + Ds + ".data-api"
2465        },
2466        Is = "dropdown-menu",
2467        As = "active",
2468        $s = "disabled",
2469        Os = "fade",
2470        Ns = "show",
2471        Ps = ".dropdown",
2472        Fs = ".nav, .list-group",
2473        Hs = ".active",
2474        js = "> li > .active",
2475        Ls = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
2476        zs = ".dropdown-toggle",
2477        Ws = "> .dropdown-menu .active",
2478        Us = function() {
2479            function s(t) {
2480                this._element = t
2481            }
2482            var t = s.prototype;
2483            return t.show = function() {
2484                var i = this;
2485                if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && f(this._element).hasClass(As) || f(this._element).hasClass($s))) {
2486                    var t, s, e = f(this._element).closest(Fs)[0],
2487                        n = m.getSelectorFromElement(this._element);
2488                    if (e) {
2489                        var o = "UL" === e.nodeName || "OL" === e.nodeName ? js : Hs;
2490                        s = (s = f.makeArray(f(e).find(o)))[s.length - 1]
2491                    }
2492                    var r = f.Event(Ms.HIDE, {
2493                            relatedTarget: this._element
2494                        }),
2495                        a = f.Event(Ms.SHOW, {
2496                            relatedTarget: s
2497                        });
2498                    if (s && f(s).trigger(r), f(this._element).trigger(a), !a.isDefaultPrevented() && !r.isDefaultPrevented()) {
2499                        n && (t = document.querySelector(n)), this._activate(this._element, e);
2500                        var l = function() {
2501                            var t = f.Event(Ms.HIDDEN, {
2502                                    relatedTarget: i._element
2503                                }),
2504                                e = f.Event(Ms.SHOWN, {
2505                                    relatedTarget: s
2506                                });
2507                            f(s).trigger(t), f(i._element).trigger(e)
2508                        };
2509                        t ? this._activate(t, t.parentNode, l) : l()
2510                    }
2511                }
2512            }, t.dispose = function() {
2513                f.removeData(this._element, Es), this._element = null
2514            }, t._activate = function(t, e, i) {
2515                function s() {
2516                    return n._transitionComplete(t, o, i)
2517                }
2518                var n = this,
2519                    o = (!e || "UL" !== e.nodeName && "OL" !== e.nodeName ? f(e).
2519children(Hs) : f(e).find(js))[0],
2520                    r = i && o && f(o).hasClass(Os);
2521                if (o && r) {
2522                    var a = m.getTransitionDurationFromElement(o);
2523                    f(o).removeClass(Ns).one(m.TRANSITION_END, s).emulateTransitionEnd(a)
2524                } else s()
2525            }, t._transitionComplete = function(t, e, i) {
2526                if (e) {
2527                    f(e).removeClass(As);
2528                    var s = f(e.parentNode).find(Ws)[0];
2529                    s && f(s).removeClass(As), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !1)
2530                }
2531                if (f(t).addClass(As), "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !0), m.reflow(t), t.classList.contains(Os) && t.classList.add(Ns), t.parentNode && f(t.parentNode).hasClass(Is)) {
2532                    var n = f(t).closest(Ps)[0];
2533                    if (n) {
2534                        var o = [].slice.call(n.querySelectorAll(zs));
2535                        f(o).addClass(As)
2536                    }
2537                    t.setAttribute("aria-expanded", !0)
2538                }
2539                i && i()
2540            }, s._jQueryInterface = function(i) {
2541                return this.each(function() {
2542                    var t = f(this),
2543                        e = t.data(Es);
2544                    if (e || (e = new s(this), t.data(Es, e)), "string" == typeof i) {
2545                        if (void 0 === e[i]) throw new TypeError('No method named "' + i + '"');
2546                        e[i]()
2547                    }
2548                })
2549            }, r(s, null, [{
2550                key: "VERSION",
2551                get: function() {
2552                    return "4.3.1"
2553                }
2554            }]), s
2555        }();
2556    f(document).on(Ms.CLICK_DATA_API, Ls, function(t) {
2557        t.preventDefault(), Us._jQueryInterface.call(f(this), "show")
2558    }), f.fn.tab = Us._jQueryInterface, f.fn.tab.Constructor = Us, f.fn.tab.noConflict = function() {
2559        return f.fn.tab = Ss, Us._jQueryInterface
2560    };
2561    var Rs = "toast",
2562        Bs = "bs.toast",
2563        qs = "." + Bs,
2564        Ys = f.fn[Rs],
2565        Vs = {
2566            CLICK_DISMISS: "click.dismiss" + qs,
2567            HIDE: "hide" + qs,
2568            HIDDEN: "hidden" + qs,
2569            SHOW: "show" + qs,
2570            SHOWN: "shown" + qs
2571        },
2572        Ks = "fade",
2573        Qs = "hide",
2574        Xs = "show",
2575        Js = "showing",
2576        Gs = {
2577            animation: "boolean",
2578            autohide: "boolean",
2579            delay: "number"
2580        },
2581        Zs = {
2582            animation: !0,
2583            autohide: !0,
2584            delay: 500
2585        },
2586        tn = '[data-dismiss="toast"]',
2587        en = function() {
2588            function s(t, e) {
2589                this._element = t, this._config = this._getConfig(e), this._timeout = null, this._setListeners()
2590            }
2591            var t = s.prototype;
2592            return t.show = function() {
2593                var t = this;
2594                f(this._element).trigger(Vs.SHOW), this._config.animation && this._element.classList.add(Ks);
2595
2596                function e() {
2597                    t._element.classList.remove(Js), t._element.classList.add(Xs), f(t._element).trigger(Vs.SHOWN), t._config.autohide && t.hide()
2598                }
2599                if (this._element.classList.remove(Qs), this._element.classList.add(Js), this._config.animation) {
2600                    var i = m.getTransitionDurationFromElement(this._element);
2601                    f(this._element).one(m.TRANSITION_END, e).emulateTransitionEnd(i)
2602                } else e()
2603            }, t.hide = function(t) {
2604                var e = this;
2605                this._element.classList.contains(Xs) && (f(this._element).trigger(Vs.HIDE), t ? this._close() : this._timeout = setTimeout(function() {
2606                    e._close()
2607                }, this._config.delay))
2608            }, t.dispose = function() {
2609                clearTimeout(this._timeout), this._timeout = null, this._element.classList.contains(Xs) && this._element.classList.remove(Xs), f(this._element).off(Vs.CLICK_DISMISS), f.removeData(this._element, Bs), this._element = null, this._config = null
2610            }, t._getConfig = function(t) {
2611                return t = l({}, Zs, f(this._element).data(), "object" == typeof t && t ? t : {}), m.typeCheckConfig(Rs, t, this.constructor.DefaultType), t
2612            }, t._setListeners = function() {
2613                var t = this;
2614                f(this._element).on(Vs.CLICK_DISMISS, tn, function() {
2615                    return t.hide(!0)
2616                })
2617            }, t._close = function() {
2618                function t() {
2619                    e._element.classList.add(Qs), f(e._element).trigger(Vs.HIDDEN)
2620                }
2621                var e = this;
2622                if (this._element.classList.remove(Xs), this._config.animation) {
2623                    var i = m.getTransitionDurationFromElement(this._element);
2624                    f(this._element).one(m.TRANSITION_END, t).emulateTransitionEnd(i)
2625                } else t()
2626            }, s._jQueryInterface = function(i) {
2627                return this.each(function() {
2628                    var t = f(this),
2629                        e = t.data(Bs);
2630                    if (e || (e = new s(this, "object" == typeof i && i), t.data(Bs, e)), "string" == typeof i) {
2631                        if (void 0 === e[i]) throw new TypeError('No method n
2631amed "' + i + '"');
2632                        e[i](this)
2633                    }
2634                })
2635            }, r(s, null, [{
2636                key: "VERSION",
2637                get: function() {
2638                    return "4.3.1"
2639                }
2640            }, {
2641                key: "DefaultType",
2642                get: function() {
2643                    return Gs
2644                }
2645            }, {
2646                key: "Default",
2647                get: function() {
2648                    return Zs
2649                }
2650            }]), s
2651        }();
2652    f.fn[Rs] = en._jQueryInterface, f.fn[Rs].Constructor = en, f.fn[Rs].noConflict = function() {
2653            return f.fn[Rs] = Ys, en._jQueryInterface
2654        },
2655        function() {
2656            if (void 0 === f) throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");
2657            var t = f.fn.jquery.split(" ")[0].split(".");
2658            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")
2659        }(), t.Util = m, t.Alert = g, t.Button = A, t.Carousel = at, t.Collapse = xt, t.Dropdown = Ge, t.Modal = vi, t.Popover = os, t.Scrollspy = Ts, t.Tab = Us, t.Toast = en, t.Tooltip = qi, Object.defineProperty(t, "__esModule", {
2660            value: !0
2661        })
2662}),
2663function(r) {
2664    "use strict";
2665
2666    function n(t, e) {
2667        this.options = e;
2668        var i = r(t),
2669            s = i.is("img"),
2670            n = s ? i.attr("src") : i.backgroundImageUrl(),
2671            o = this.options.generateUrl(i, n);
2672        r("<img/>").attr("src", o).load(function() {
2673            s ? i.attr("src", r(this).attr("src")) : (i.backgroundImageUrl(r(this).attr("src")), i.backgroundSize(r(this)[0].width, r(this)[0].height)), i.attr("data-retina", "complete")
2674        })
2675    }
2676    n.prototype = {
2677        constructor: n
2678    }, r.fn.retinaReplace = function(s) {
2679        return t() <= 1 ? this : this.each(function() {
2680            var t = r(this),
2681                e = t.data("retinaReplace"),
2682                i = r.extend({}, r.fn.retinaReplace.defaults, t.data(), "object" == typeof s && s);
2683            e || t.data("retinaReplace", e = new n(this, i)), "string" == typeof s && e[s]()
2684        })
2685    }, r.fn.retinaReplace.defaults = {
2686        suffix: "_2x",
2687        generateUrl: function(t, e) {
2688            var i = e.lastIndexOf("."),
2689                s = e.substr(i + 1);
2690            return e.substr(0, i) + this.suffix + "." + s
2691        }
2692    }, r.fn.retinaReplace.Constructor = n;
2693    var t = function() {
2694        return void 0 === window.devicePixelRatio ? 1 : window.devicePixelRatio
2695    };
2696    r.fn.backgroundImageUrl = function(t) {
2697        return t ? this.each(function() {
2698            r(this).css("background-image", 'url("' + t + '")')
2699        }) : r(this).css("background-image").replace(/url\(|\)|"|'/g, "")
2700    }, r.fn.backgroundSize = function(t, e) {
2701        var i = Math.floor(t / 2) + "px " + Math.floor(e / 2) + "px";
2702        r(this).css("background-size", i), r(this).css("-webkit-background-size", i)
2703    }, r(function() {
2704        r("[data-retina='true']").retinaReplace()
2705    })
2706}(window.jQuery),
2707function(r, a, l, h) {
2708    function c(t, e) {
2709        var i = this;
2710        "object" == typeof e && (delete e.refresh, delete e.render, r.extend(this, e)), this.$element = r(t), !this.imageSrc && this.$element.is("img") && (this.imageSrc = this.$element.attr("src"));
2711        var s = (this.position + "").toLowerCase().match(/\S+/g) || [];
2712        if (s.length < 1 && s.push("center"), 1 == s.length && s.push(s[0]), "top" != s[
27120] && "bottom" != s[0] && "left" != s[1] && "right" != s[1] || (s = [s[1], s[0]]), this.positionX !== h && (s[0] = this.positionX.toLowerCase()), this.positionY !== h && (s[1] = this.positionY.toLowerCase()), i.positionX = s[0], i.positionY = s[1], "left" != this.positionX && "right" != this.positionX && (isNaN(parseInt(this.positionX)) ? this.positionX = "center" : this.positionX = parseInt(this.positionX)), "top" != this.positionY && "bottom" != this.positionY && (isNaN(parseInt(this.positionY)) ? this.positionY = "center" : this.positionY = parseInt(this.positionY)), this.position = this.positionX + (isNaN(this.positionX) ? "" : "px") + " " + this.positionY + (isNaN(this.positionY) ? "" : "px"), navigator.userAgent.match(/(iPod|iPhone|iPad)/)) return this.imageSrc && this.iosFix && !this.$element.is("img") && this.$element.css({
2713            backgroundImage: 'url("' + this.imageSrc + '")',
2714            backgroundSize: "cover",
2715            backgroundPosition: this.position
2716        }), this;
2717        if (navigator.userAgent.match(/(Android)/)) return this.imageSrc && this.androidFix && !this.$element.is("img") && this.$element.css({
2718            backgroundImage: 'url("' + this.imageSrc + '")',
2719            backgroundSize: "cover",
2720            backgroundPosition: this.position
2721        }), this;
2722        this.$mirror = r("<div />").prependTo(this.mirrorContainer);
2723        var n = this.$element.find(">.parallax-slider"),
2724            o = !1;
2725        0 == n.length ? this.$slider = r("<img />").prependTo(this.$mirror) : (this.$slider = n.prependTo(this.$mirror), o = !0), this.$mirror.addClass("parallax-mirror").css({
2726            visibility: "hidden",
2727            zIndex: this.zIndex,
2728            position: "fixed",
2729            top: 0,
2730            left: 0,
2731            overflow: "hidden"
2732        }), this.$slider.addClass("parallax-slider").one("load", function() {
2733            i.naturalHeight && i.naturalWidth || (i.naturalHeight = this.naturalHeight || this.height || 1, i.naturalWidth = this.naturalWidth || this.width || 1), i.aspectRatio = i.naturalWidth / i.naturalHeight, c.isSetup || c.setup(), c.sliders.push(i), c.isFresh = !1, c.requestRender()
2734        }), o || (this.$slider[0].src = this.imageSrc), (this.naturalHeight && this.naturalWidth || this.$slider[0].complete || 0 < n.length) && this.$slider.trigger("load")
2735    }! function() {
2736        for (var n = 0, t = ["ms", "moz", "webkit", "o"], e = 0; e < t.length && !a.requestAnimationFrame; ++e) a.requestAnimationFrame = a[t[e] + "RequestAnimationFrame"], a.cancelAnimationFrame = a[t[e] + "CancelAnimationFrame"] || a[t[e] + "CancelRequestAnimationFrame"];
2737        a.requestAnimationFrame || (a.requestAnimationFrame = function(t) {
2738            var e = (new Date).getTime(),
2739                i = Math.max(0, 16 - (e - n)),
2740                s = a.setTimeout(function() {
2741                    t(e + i)
2742                }, i);
2743            return n = e + i, s
2744        }), a.cancelAnimationFrame || (a.cancelAnimationFrame = function(t) {
2745            clearTimeout(t)
2746        })
2747    }(), r.extend(c.prototype, {
2748        speed: .2,
2749        bleed: 0,
2750        zIndex: 1,
2751        iosFix: !0,
2752        androidFix: !0,
2753        position: "center",
2754        overScrollFix: !1,
2755        mirrorContainer: "body",
2756        refresh: function() {
2757            this.boxWidth = this.$element.outerWidth(), this.boxHeight = this.$element.outerHeight() + 2 * this.bleed, this.boxOffsetTop = this.$element.offset().top - this.bleed, this.boxOffsetLeft = this.$element.offset().left, this.boxOffsetBottom = this.boxOffsetTop + this.boxHeight;
2758            var t, e = c.winHeight,
2759                i = c.docHeight,
2760                s = Math.min(this.boxOffsetTop, i - e),
2761                n = Math.max(this.boxOffsetTop + this.boxHeight - e, 0),
2762                o = this.boxHeight + (s - n) * (1 - this.speed) | 0,
2763                r = (this.boxOffsetTop - s) * (1 - this.speed) | 0;
2764            o * this.aspectRatio >= this.boxWidth ? (this.imageWidth = o * this.aspectRatio | 0, this.imageHeight = o, this.offsetBaseTop = r, t = this.imageWidth - this.boxWidth, "left" == this.positionX ? this.offsetLeft = 0 : "right" == this.positionX ? this.offsetLeft = -t : isNaN(this.positionX) ? this.offsetLeft = -t / 2 | 0 : this.offsetLeft = Math.max(this.positionX, -t)) : (this.imageWidth = this.boxWidth, this.imageHeight = this.boxWidth / this.aspectRatio | 0, this.offsetLeft = 0, t = this.imageHeight - o, "top" == this.positionY ? this.offsetBaseTop = r : "bottom" == this.positionY ? this.offsetBaseTop = r - t : isNaN(this.positionY) ? this.offsetBaseTop = r - t / 2 | 0 : this.offsetBaseTop = r + Math.max(this.positionY, -t))
2765        },
2766        render: function() {
2767            var t = c.scrollTop,
2768                e = c.scrollLeft,
2769                i = this.overScrollFix ? c.overScroll : 0,
2770                s = t + c.winHeight;
2771            this.boxOffsetBottom > t && this.boxOffsetTop <= s ? (this.visibility = "visible", this.mirrorTop = this.boxOffsetTop - t, this.mirrorLeft = this.boxOffsetLeft - e, this.offsetTop = this.offsetBaseTop - this.mirrorTop * (1 - this.speed)) : this.visibility = "hidden", this.$mirror.css({
2772                transform: "translate3d(" + this.mirrorLeft + "px, " + (this.mirrorTop - i) + "px, 0px)",
2773                visibility: this.visibility,
2774                height: this.boxHeight,
2775                width: this.boxWidth
2776            }), this.$slider.css({
2777                transform: "translate3d(" + this.offsetLeft + "px, " + this.offsetTop + "px, 0px)",
2778                position: "absolute",
2779                height: this.imageHeight,
2780                width: this.imageWidth,
2781                maxWidth: "none"
2782            })
2783        }
2784    }), r.extend(c, {
2785        scrollTop: 0,
2786        scrollLeft: 0,
2787        winHeight: 0,
2788        winWidth: 0,
2789        docHeight: 1 << 30,
2790        docWidth: 1 << 30,
2791        sliders: [],
2792        isReady: !1,
2793        isFresh: !1,
2794        isBusy: !1,
2795        setup: function() {
2796            if (!this.isReady) {
2797                function t() {
2798                    c.winHeight = n.height(), c.winWidth = n.width(), c.docHeight = s.height(), c.docWidth = s.width()
2799                }
2800
2801                function e() {
2802                    var t = n.scrollTop(),
2803                        e = c.docHeight - c.winHeight,
2804                        i = c.docWidth - c.winWidth;
2805                    c.scrollTop = Math.max(0, Math.min(e, t)), c.scrollLeft = Math.max(0, Math.min(i, n.scrollLeft())), c.overScroll = Math.max(t - e, Math.min(t, 0))
2806                }
2807                var i = this,
2808                    s = r(l),
2809                    n = r(a);
2810                n.on("resize.px.parallax load.px.parallax", function() {
2811                    t(), i.refresh(), c.isFresh = !1, c.requestRender()
2812                }).on("scroll.px.parallax load.px.parallax", function() {
2813                    e(), c.requestRender()
2814                }), t(), e(), this.isReady = !0;
2815                var o = -1;
2816                ! function t() {
2817                    if (o == a.pageYOffset) return a.requestAnimationFrame(t), !1;
2818                    o = a.pageYOffset, i.render(), a.requestAnimationFrame(t)
2819                }()
2820            }
2821        },
2822        configure: function(t) {
2823            "object" == typeof t && (delete t.refresh, delete t.render, r.extend(this.prototype, t))
2824        },
2825        refresh: function() {
2826            r.each(this.sliders, function() {
2827                this.refresh()
2828            }), this.isFresh = !0
2829        },
2830        render: function() {
2831            this.isFresh || this.refresh(), r.each(this.sliders, function() {
2832                this.render()
2833            })
2834        },
2835        requestRender: function() {
2836            this.render(), this.isBusy = !1
2837        },
2838        destroy: function(t) {
2839            var e, i = r(t).data("px.parallax");
2840            for (i.$mirror.remove(), e = 0; e < this.sliders.length; e += 1) this.sliders[e] == i && this.sliders.splice(e, 1);
2841            r(t).data("px.parallax", !1), 0 === this.sliders.length && (r(a).off("scroll.px.parallax resize.px.parallax load.px.parallax"), this.isReady = !1, c.isSetup = !1)
2842        }
2843    });
2844    var t = r.fn.parallax;
2845    r.fn.parallax = function(i) {
2846        return this.each(function() {
2847            var t = r(this),
2848                e = "object" == typeof i && i;
2849            this == a || this == l || t.is("body") ? c.configure(e) : t.data("px.parallax") ? "object" == typeof i && r.extend(t.data("px.parallax"), e) : (e = r.extend({}, t.data(), e), t.data("px.parallax", new c(this, e))), "string" == typeof i && ("destroy" == i ? c.destroy(this) : c[i]())
2850        })
2851    }, r.fn.parallax.Constructor = c, r.fn.parallax.noConflict = function() {
2852        return r.fn.parallax = t, this
2853    }, r(function() {
2854        r('[data-parallax="scroll"]').parallax()
2855    })
2856}(jQuery, window, document),
2857function(t) {
2858    "function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof exports ? t(require("jquery")) : t(window.jQuery || window.Zepto)
2859}(function(c) {
2860    function t() {}
2861
2862    function d(t, e) {
2863        m.ev.on("mfp" + t + w, e)
2864    }
2865
2866    function u(t, e, i, s) {
2867        var n = document.createElement("div");
2868        return n.className = "mfp-" + t, i && (n.innerHTML = i), s ? e && e.appendChild(n) : (n = c(n), e && n.appendTo(e)), n
2869    }
2870
2871    function p(t, e) {
2872        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]))
2873    }
2874
2875    function f(t) {
2876        return t === e && m.currTemplate.closeBtn || (m.currTemplate.closeBtn = c(m.st.closeMarkup.replace("%title%", m.st.tClose)), e = t), m.currTemplate.closeBtn
2877    }
2878
2879    function o() {
2880        c.magnificPopup.instance || ((m = new t).init(), c.magnificPopup.instance = m)
2881    }
2882    var m, s, g, n, _, e, l = "Close",
2883        h = "BeforeClose",
2884        v = "MarkupParse",
2885        y = "Open",
2886        w = ".mfp",
2887        b = "mfp-ready",
2888        i = "mfp-removing",
2889        r = "mfp-prevent-close",
2890        a = !!window.jQuery,
2891        k = c(window);
2892    t.prototype = {
2893        constructor: t,
2894        init: function() {
2895            var t = navigator.appVersion;
2896            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() {
2897                var t = document.createElement("p").style,
2898                    e = ["ms", "O", "Moz", "Webkit"];
2899                if (void 0 !== t.transition) return !0;
2900                for (; e.length;)
2901                    if (e.pop() + "Transition" in t) return !0;
2902                return !1
2903            }(), 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 = {}
2904        },
2905        open: function(t) {
2906            var e;
2907            if (!1 === t.isObj) {
2908                m.items = t.items.toArray(), m.index = 0;
2909                var i, s = t.items;
2910                for (e = 0; e < s.length; e++)
2911                    if ((i = s[e]).parsed && (i = i.el[0]), i === t.el[0]) {
2912                        m.index = e;
2913                        break
2914                    }
2915            } else m.items = c.isArray(t.items) ? t.items : [t.items], m.index = t.index || 0;
2916            if (!m.isOpen) {
2917                m.types = [], _ = "", 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 = u("bg").on("click" + w, function() {
2918                    m.close()
2919                }), m.wrap = u("wrap").attr("tabindex", -1).on("click" + w, function(t) {
2920                    m._checkIfClose(t.target) && m.close()
2921                }), m.container = u("container", m.wrap)), m.contentContainer = u("content"), m.st.preloader && (m.preloader = u("preloader", m.container, m.st.tLoading));
2922                var n = c.magnificPopup.modules;
2923                for (e = 0; e < n.length; e++) {
2924                    var o = n[e];
2925                    o = o.charAt(0).toUpperCase() + o.slice(1), m["init" + o].call(m)
2926                }
2927                p("BeforeOpen"), m.st.showCloseBtn && (m.st.closeBtnInside ? (d(v, function(t, e, i, s) {
2928                    i.close_replaceWith = f(s.type)
2929                }), _ += " mfp-close-btn-in") : m.wrap.append(f())), m.st.alignTop && (_ += " mfp-align-top"), m.fixedContentPos ? m.wrap.css({
2930                    overflow: m.st.overflowY,
2931                    overflowX: "hidden",
2932                    overflowY: m.st.overflowY
2933                }) : m.wrap.css({
2934                    top: k.scrollTop(),
2935                    position: "absolute"
2936                }), !1 !== m.st.fixedBgPos && ("auto" !== m.st.fixedBgPos || m.fixedContentPos) || m.bgOverlay.css({
2937                    height: g.height(),
2938                    position: "absolute"
2939                }), m.st.enableEscapeKey && g.on("keyup" + w, function(t) {
2940                    27 === t.keyCode && m.close()
2941                }), k.on("resize" + w, function() {
2942                    m.updateSize()
2943                }), m.st.closeOnContentClick || (_ += " mfp-auto-cursor"), _ && m.wrap.addClass(_);
2944                var r = m.wH = k.height(),
2945                    a = {};
2946                if (m.fixedContentPos && m._hasScrollBar(r)) {
2947                    var l = m._getScrollbarSize();
2948                    l && (a.marginRight = l)
2949                }
2950                m.fixedContentPos && (m.isIE7 ? c("body, html").css("overflow", "hidden") : a.overflow = "hidden");
2951                var h = m.st.mainClass;
2952                return m.isIE7 && (h += " mfp-ie7"), h && m._addClassToMFP(h), m.updateItemHTML(), p("BuildControls"), c("html").css(a), m.bgOverlay.add(m.wrap).prependTo(m.st.prependTo || c(document.body)), m._lastFocusedEl = document.activeElement, setTimeout(function() {
2953                    m.content ? (m._addClassToMFP(b), m._setFocus()) : m.bgOverlay.addClass(b), g.on("focusin" + w, m._onFocusIn)
2954                }, 16), m.isOpen = !0, m.updateSize(r), p(y), t
2955            }
2956            m.updateItemHTML()
2957        },
2958        close: function() {
2959            m.isOpen && (p(h), m.isOpen = !1, m.st.removalDelay && !m.isLowIE && m.supportsTransition ? (m._addClassToMFP(i), setTimeout(function() {
2960                m._close()
2961            }, m.st.removalDelay)) : m._close())
2962        },
2963        _close: function() {
2964            p(l);
2965            var t = i + " " + b + " ";
2966            if (m.bgOverlay.detach(), m.wrap.detach(), m.container.empty(), m.st.mainClass && (t += m.st.mainClass + " "), m._removeClassFromMFP(t), m.fixedContentPos) {
2967                var e = {
2968                    marginRight: ""
2969                };
2970                m.isIE7 ? c("body, html").css("overflow", "") : e.overflow = "", c("html").css(e)
2971            }
2972            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, p("AfterClose")
2973        },
2974        updateSize: function(t) {
2975            if (m.isIOS) {
2976                var e = document.documentElement.clientWidth / window.innerWidth,
2977                    i = window.innerHeight * e;
2978                m.wrap.css("height", i), m.wH = i
2979            } else m.wH = t || k.height();
2980            m.fixedContentPos || m.wrap.css("height", m.wH), p("Resize")
2981        },
2982        updateItemHTML: function() {
2983            var t = m.items[m.index];
2984            m.contentContainer.detach(), m.content && m.content.detach(), t.parsed || (t = m.parseEl(m.index));
2985            var e = t.type;
2986            if (p("BeforeChange", [m.currItem ? m.currItem.type : "", e]), m.currItem = t, !m.currTemplate[e]) {
2987                var i = !!m.st[e] && m.st[e].markup;
2988                p("FirstMarkupParse", i), m.currTemplate[e] = !i || c(i)
2989            }
2990            n && n !== t.type && m.container.removeClass("mfp-" + n + "-holder");
2991            var s = m["get" + e.charAt(0).toUpperCase() + e.slice(1)](t, m.currTemplate[e]);
2992            m.appendContent(s, e), t.preloaded = !0, p("Change", t), n = t.type, m.container.prepend(m.contentContainer), p("AfterChange")
2993        },
2994        appendContent: function(t, e) {
2995            (m.content = t) ? m.st.showCloseBtn && m.st.closeBtnInside && !0 === m.currTemplate[e] ? m.content.find(".mfp-close").length || m.content.append(f()) : m.content = t: m.content = "", p("BeforeAppend"), m.container.addClass("mfp-" + e + "-holder"), m.contentContainer.append(m.content)
2996        },
2997        parseEl: function(t) {
2998            var e, i = m.items[t];
2999            if ((i = i.tagName ? {
3000                    el: c(i)
3001                } : (e = i.type, {
3002                    data: i,
3003                    src: i.src
3004                })).el) {
3005                for (var s = m.types, n = 0; n < s.length; n++)
3006                    if (i.el.hasClass("mfp-" + s[n])) {
3007                        e = s[n];
3008                        break
3009                    }
3010                i.src = i.el.attr("data-mfp-src"), i.src || (i.src = i.el.attr("href"))
3011            }
3012            return i.type = e || m.st.type || "inline", i.index = t, i.parsed = !0, m.items[t] = i, p("ElementParse", i), m.items[t]
3013        },
3014        addGroup: function(e, i) {
3015            function t(t) {
3016                t.mfpEl = this, m._openClick(t, e, i)
3017            }
3018            var s = "click.magnificPopup";
3019            (i = i || {}).mainEl = e, i.items ? (i.isObj = !0, e.off(s).on(s, t)) : (i.isObj = !1, i.delegate ? e.off(s).on(s, i.delegate, t) : (i.items = e).off(s).on(s, t))
3020        },
3021        _openClick: function(t, e, i) {
3022            if ((void 0 !== i.midClick ? i.midClick : c.magnificPopup.defaults.midClick) || !(2 === t.which || t.ctrlKey || t.metaKey || t.altKey || t.shiftKey)) {
3023                var s = void 0 !== i.disableOn ? i.disableOn : c.magnificPopup.defaults.disableOn;
3024                if (s)
3025                    if (c.isFunction(s)) {
3026                        if (!s.call(m)) return !0
3027                    } else if (k.width() < s) return !0;
3028                t.type && (t.preventDefault(), m.isOpen && t.stopPropagation()), i.el = c(t.mfpEl), i.delegate && (i.items = e.find(i.delegate)), m.open(i)
3029            }
3030        },
3031        updateStatus: function(t, e) {
3032            if (m.preloader) {
3033                s !== t && m.container.removeClass("mfp-s-" + s), e || "loading" !== t || (e = m.st.tLoading);
3034                var i = {
3035                    status: t,
3036                    text: e
3037                };
3038                p("UpdateStatus", i), t = i.status, e = i.text, m.preloader.html(e), m.preloader.find("a").on("click", function(t) {
3039                    t.stopImmediatePropagation()
3040                }), m.container.addClass("mfp-s-" + t), s = t
3041            }
3042        },
3043        _checkIfClose: function(t) {
3044            if (!c(t).hasClass(r)) {
3045                var e = m.st.closeOnContentClick,
3046                    i = m.st.closeOnBgClick;
3047                if (e && i) return !0;
3048                if (!m.content || c(t).hasClass("mfp-close") || m.preloader && t === m.preloader[0]) return !0;
3049                if (t === m.content[0] || c.contains(m.content[0], t)) {
3050                    if (e) return !0
3051                } else if (i && c.contains(document, t)) return !0;
3052                return !1
3053            }
3054        },
3055        _addClassToMFP: function(t) {
3056            m.bgOverlay.addClass(t), m.wrap.addClass(t)
3057        },
3058        _removeClassFromMFP: function(t) {
3059            this.bgOverlay.removeClass(t), m.wrap.removeClass(t)
3060        },
3061        _hasScrollBar: function(t) {
3062            return (m.isIE7 ? g.height() : document.body.scrollHeight) > (t || k.height())
3063        },
3064        _setFocus: function() {
3065            (m.st.focus ? m.content.find(m.st.focus).eq(0) : m.wrap).focus()
3066        },
3067        _onFocusIn: function(t) {
3068            if (t.target !== m.wrap[0] && !c.contains(m.wrap[0], t.target)) return m._setFocus(), !1
3069        },
3070        _parseMarkup: function(n, t, e) {
3071            var o;
3072            e.data && (t = c.extend(e.data, t)), p(v, [n, t, e]), c.each(t, function(t, e) {
3073                if (void 0 === e || !1 === e) return !0;
3074                if (1 < (o = t.split("_")).length) {
3075                    var i = n.find(w + "-" + o[0]);
3076                    if (0 < i.length) {
3077                        var s = o[1];
3078                        "replaceWith" === s ? i[0] !== e[0] && i.replaceWith(e) : "img" === s ? i.is("img") ? i.attr("src", e) : i.replaceWith(c("<img>").attr("src", e).attr("class", i.attr("class"))) : i.attr(o[1], e)
3079                    }
3080                } else n.find(w + "-" + t).html(e)
3081            })
3082        },
3083        _getScrollbarSize: function() {
3084            if (void 0 === m.scrollbarSize) {
3085                var t = document.createElement("div");
3086                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)
3087            }
3088            return m.scrollbarSize
3089        }
3090    }, c.magnificPopup = {
3091        instance: null,
3092        proto: t.prototype,
3093        modules: [],
3094        open: function(t, e) {
3095            return o(), (t = t ? c.extend(!0, {}, t) : {}).isObj = !0, t.index = e || 0, this.instance.open(t)
3096        },
3097        close: function() {
3098            return c.magnificPopup.instance && c.magnificPopup.instance.close()
3099        },
3100        registerModule: function(t, e) {
3101            e.options && (c.magnificPopup.defaults[t] = e.options), c.extend(this.proto, e.proto), this.modules.push(t)
3102        },
3103        defaults: {
3104            disableOn: 0,
3105            key: null,
3106            midClick: !1,
3107            mainClass: "",
3108            preloader: !0,
3109            focus: "",
3110            closeOnContentClick: !1,
3111            closeOnBgClick: !0,
3112            closeBtnInside: !0,
3113            showCloseBtn: !0,
3114            enableEscapeKey: !0,
3115            modal: !1,
3116            alignTop: !1,
3117            removalDelay: 0,
3118            prependTo: null,
3119            fixedContentPos: "auto",
3120            fixedBgPos: "auto",
3121            overflowY: "auto",
3122            closeMarkup: '<button title="%title%" type="button" class="mfp-close"></button>',
3123            tClose: "Close (Esc)",
3124            tLoading: "Loading...",
3125            autoFocusLast: !0
3126        }
3127    }, c.fn.magnificPopup = function(t) {
3128        o();
3129        var e = c(this);
3130        if ("string" == typeof t)
3131            if ("open" === t) {
3132                var i, s = a ? e.data("magnificPopup") : e[0].magnificPopup,
3133                    n = parseInt(arguments[1], 10) || 0;
3134                i = s.items ? s.items[n] : (i = e, s.delegate && (i = i.find(s.delegate)), i.eq(n)), m._openClick({
3135                    mfpEl: i
3136                }, e, s)
3137            } else m.isOpen && m[t].apply(m, Array.prototype.slice.call(arguments, 1));
3138        else t = c.extend(!0, {}, t), a ? e.data("magnificPopup", t) : e[0].magnificPopup = t, m.addGroup(e, t);
3139        return e
3140    };
3141
3142    function x() {
3143        E && (T.after(E.addClass(C)).detach(), E = null)
3144    }
3145    var C, T, E, D = "inline";
3146    c.magnificPopup.registerModule(D, {
3147        options: {
3148            hiddenClass: "hide",
3149            markup: "",
3150            tNotFound: "Content not found"
3151        },
3152        proto: {
3153            initInline: function() {
3154                m.types.push(D), d(l + "." + D, function() {
3155                    x()
3156                })
3157            },
3158            getInline: function(t, e) {
3159                if (x(), t.src) {
3160                    var i = m.st.inline,
3161                        s = c(t.src);
3162                    if (s.length) {
3163                        var n = s[0].parentNode;
3164                        n && n.tagName && (T || (C = i.hiddenClass, T = u(C), C = "mfp-" + C), E = s.after(T).detach().removeClass(C)), m.updateStatus("ready")
3165                    } else m.updateStatus("error", i.tNotFound), s = c("<div>");
3166                    return t.inlineElement = s
3167                }
3168                return m.updateStatus("ready"), m._parseMarkup(e, {}, t), e
3169            }
3170        }
3171    });
3172
3173    function S() {
3174        I && c(document.body).removeClass(I)
3175    }
3176
3177    function M() {
3178        S(), m.req && m.req.abort()
3179    }
3180    var I, A = "ajax";
3181    c.magnificPopup.registerModule(A, {
3182        options: {
3183            settings: null,
3184            cursor: "mfp-ajax-cur",
3185            tError: '<a href="%url%">The content</a> could not be loaded.'
3186        },
3187        proto: {
3188            initAjax: function() {
3189                m.types.push(A), I = m.st.ajax.cursor, d(l + "." + A, M), d("BeforeChange." + A, M)
3190            },
3191            getAjax: function(n) {
3192                I && c(document.body).addClass(I), m.updateStatus("loading");
3193                var t = c.extend({
3194                    url: n.src,
3195                    success: function(t, e, i) {
3196                        var s = {
3197                            data: t,
3198                            xhr: i
3199                        };
3200                        p("ParseAjax", s), m.appendContent(c(s.data), A), n.finished = !0, S(), m._setFocus(), setTimeout(function() {
3201                            m.wrap.addClass(b)
3202                        }, 16), m.updateStatus("ready"), p("AjaxContentAdded")
3203                    },
3204                    error: function() {
3205                        S(), n.finished = n.loadError = !0, m.updateStatus("error", m.st.ajax.tError.replace("%url%", n.src))
3206                    }
3207                }, m.st.ajax.settings);
3208                return m.req = c.ajax(t), ""
3209            }
3210        }
3211    });
3212    var $;
3213    c.magnificPopup.registerModule("image", {
3214        options: {
3215            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>',
3216            cursor: "mfp-zoom-out-cur",
3217            titleSrc: "title",
3218            verticalFit: !0,
3219            tError: '<a href="%url%">The image</a> could not be loaded.'
3220        },
3221        proto: {
3222            initImage: function() {
3223                var t = m.st.image,
3224                    e = ".image";
3225                m.types.push("image"), d(y + e, function() {
3226                    "image" === m.currItem.type && t.cursor && c(document.body).addClass(t.cursor)
3227                }), d(l + e, function() {
3228                    t.cursor && c(document.body).removeClass(t.cursor), k.off("resize" + w)
3229                }), d("Resize" + e, m.resizeImage), m.isLowIE && d("AfterChange", m.resizeImage)
3230            },
3231            resizeImage: function() {
3232                var t = m.currItem;
3233                if (t && t.img && m.st.image.verticalFit) {
3234                    var e = 0;
3235                    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)
3236                }
3237            },
3238            _onImageHasSize: function(t) {
3239                t.img && (t.hasSize = !0, $ && clearInterval($), t.isCheckingImgSize = !1, p("ImageHasSize", t), t.imgHidden && (m.content && m.content.removeClass("mfp-loading"), t.imgHidden = !1))
3240            },
3241            findImageSize: function(e) {
3242                var i = 0,
3243                    s = e.img[0],
3244                    n = function(t) {
3245                        $ && clearInterval($), $ = setInterval(function() {
3246                            0 < s.naturalWidth ? m._onImageHasSize(e) : (200 < i && clearInterval($), 3 === ++i ? n(10) : 40 === i ? n(50) : 100 === i && n(500))
3247                        }, t)
3248                    };
3249                n(1)
3250            },
3251            getImage: function(t, e) {
3252                var i = 0,
3253                    s = function() {
3254                        t && (t.img[0].complete ? (t.img.off(".mfploader"), t === m.currItem && (m._onImageHasSize(t), m.updateStatus("ready")), t.hasSize = !0, t.loaded = !0, p("ImageLoadComplete")) : ++i < 200 ? setTimeout(s, 100) : n())
3255                    },
3256                    n = function() {
3257                        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)
3258                    },
3259                    o = m.st.image,
3260                    r = e.find(".mfp-img");
3261                if (r.length) {
3262                    var a = document.createElement("img");
3263                    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", s).on("error.mfploader", n), 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)
3264                }
3265                return m._parseMarkup(e, {
3266                    title: function(t) {
3267                        if (t.data && void 0 !== t.data.title) return t.data.title;
3268                        var e = m.st.image.titleSrc;
3269                        if (e) {
3270                            if (c.isFunction(e)) return e.call(m, t);
3271                            if (t.el) return t.el.attr(e) || ""
3272                        }
3273                        return ""
3274                    }(t),
3275                    img_replaceWith: t.img
3276                }, t), m.resizeImage(), t.hasSize ? ($ && clearInterval($), 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
3277            }
3278        }
3279    });
3280    var O;
3281    c.magnificPopup.registerModule("zoom", {
3282        options: {
3283            enabled: !1,
3284            easing: "ease-in-out",
3285            duration: 300,
3286            opener: function(t) {
3287                return t.is("img") ? t : t.find("img")
3288            }
3289        },
3290        proto: {
3291            initZoom: function() {
3292                var t, o = m.st.zoom,
3293                    e = ".zoom";
3294                if (o.enabled && m.supportsTransition) {
3295                    function i(t) {
3296                        var e = t.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),
3297                            i = "all " + o.duration / 1e3 + "s " + o.easing,
3298                            s = {
3299                                position: "fixed",
3300                                zIndex: 9999,
3301                                left: 0,
3302                                top: 0,
3303                                "-webkit-backface-visibility": "hidden"
3304                            },
3305                            n = "transition";
3306                        return s["-webkit-" + n] = s["-moz-" + n] = s["-o-" + n] = s[n] = i, e.css(s), e
3307                    }
3308
3309                    function s() {
3310                        m.content.css("visibility", "visible")
3311                    }
3312                    var n, r, a = o.duration;
3313                    d("BuildControls" + e, function() {
3314                        if (m._allowZoom()) {
3315                            if (clearTimeout(n), m.content.css("visibility", "hidden"), !(t = m._getItemToZoom())) return void s();
3316                            (r = i(t)).css(m._getOffset()), m.wrap.append(r), n = setTimeout(function() {
3317                                r.css(m._getOffset(!0)), n = setTimeout(function() {
3318                                    s(), setTimeout(function() {
3319                                        r.remove(), t = r = null, p("ZoomAnimationEnded")
3320                                    }, 16)
3321                                }, a)
3322                            }, 16)
3323                        }
3324                    }), d(h + e, function() {
3325                        if (m._allowZoom()) {
3326                            if (clearTimeout(n), m.st.removalDelay = a, !t) {
3327                                if (!(t = m._getItemToZoom())) return;
3328                                r = i(t)
3329                            }
3330                            r.css(m._getOffset(!0)), m.wrap.append(r), m.content.css("visibility", "hidden"), setTimeout(function() {
3331                                r.css(m._getOffset())
3332                            }, 16)
3333                        }
3334                    }), d(l + e, function() {
3335                        m._allowZoom() && (s(), r && r.remove(), t = null)
3336                    })
3337                }
3338            },
3339            _allowZoom: function() {
3340                return "image" === m.currItem.type
3341            },
3342            _getItemToZoom: function() {
3343                return !!m.currItem.hasSize && m.currItem.img
3344            },
3345            _getOffset: function(t) {
3346                var e, i = (e = t ? m.currItem.img : m.st.zoom.opener(m.currItem.el || m.currItem)).offset(),
3347                    s = parseInt(e.css("padding-top"), 10),
3348                    n = parseInt(e.css("padding-bottom"), 10);
3349                i.top -= c(window).scrollTop() - s;
3350                var o = {
3351                    width: e.width(),
3352                    height: (a ? e.innerHeight() : e[0].offsetHeight) - n - s
3353                };
3354                return void 0 === O && (O = void 0 !== document.createElement("p").style.MozTransform), O ? o["-moz-transform"] = o.transform = "translate(" + i.left + "px," + i.top + "px)" : (o.left = i.left, o.top = i.top), o
3355            }
3356        }
3357    });
3358
3359    function N(t) {
3360        if (m.currTemplate[P]) {
3361            var e = m.currTemplate[P].find("iframe");
3362            e.length && (t || (e[0].src = "//about:blank"), m.isIE8 && e.css("display", t ? "block" : "none"))
3363        }
3364    }
3365    var P = "iframe";
3366    c.magnificPopup.registerModule(P, {
3367        options: {
3368            markup: '<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',
3369            srcAction: "iframe_src",
3370            patterns: {
3371                youtube: {
3372                    index: "youtube.com",
3373                    id: "v=",
3374                    src: "//www.youtube.com/embed/%id%?autoplay=1"
3375                },
3376                vimeo: {
3377                    index: "vimeo.com/",
3378                    id: "/",
3379                    src: "//player.vimeo.com/video/%id%?autoplay=1"
3380                },
3381                gmaps: {
3382                    index: "//maps.google.",
3383                    src: "%id%&output=embed"
3384                }
3385            }
3386        },
3387        proto: {
3388            initIframe: function() {
3389                m.types.push(P), d("BeforeChange", function(t, e, i) {
3390                    e !== i && (e === P ? N() : i === P && N(!0))
3391                }), d(l + "." + P, function() {
3392                    N()
3393                })
3394            },
3395            getIframe: function(t, e) {
3396                var i = t.src,
3397                    s = m.st.iframe;
3398                c.each(s.patterns, function() {
3399                    if (-1 < i.indexOf(this.index)) return 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
3400                });
3401                var n = {};
3402                return s.srcAction && (n[s.srcAction] = i), m._parseMarkup(e, n, t), m.updateStatus("ready"), e
3403            }
3404        }
3405    });
3406
3407    function F(t) {
3408        var e = m.items.length;
3409        return e - 1 < t ? t - e : t < 0 ? e + t : t
3410    }
3411
3412    function H(t, e, i) {
3413        return t.replace(/%curr%/gi, e + 1).replace(/%total%/gi, i)
3414    }
3415    c.magnificPopup.registerModule("gallery", {
3416        options: {
3417            enabled: !1,
3418            arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
3419            preload: [0, 2],
3420            navigateByImgClick: !0,
3421            arrows: !0,
3422            tPrev: "Previous (Left arrow key)",
3423            tNext: "Next (Right arrow key)",
3424            tCounter: "%curr% of %total%"
3425        },
3426        proto: {
3427            initGallery: function() {
3428                var o = m.st.gallery,
3429                    t = ".mfp-gallery";
3430                if (m.direction = !0, !o || !o.enabled) return !1;
3431                _ += " mfp-gallery", d(y + t, function() {
3432                    o.navigateByImgClick && m.wrap.on("click" + t, ".mfp-img", function() {
3433                        if (1 < m.items.length) return m.next(), !1
3434                    }), g.on("keydown" + t, function(t) {
3435                        37 === t.keyCode ? m.prev() : 39 === t.keyCode && m.next()
3436                    })
3437                }), d("UpdateStatus" + t, function(t, e) {
3438                    e.text && (e.text = H(e.text, m.currItem.index, m.items.length))
3439                }), d(v + t, function(t, e, i, s) {
3440                    var n = m.items.length;
3441                    i.counter = 1 < n ? H(o.tCounter, s.index, n) : ""
3442                }), d("BuildControls" + t, function() {
3443                    if (1 < m.items.length && o.arrows && !m.arrowLeft) {
3444                        var t = o.arrowMarkup,
3445                            e = m.arrowLeft = c(t.replace(/%title%/gi, o.tPrev).replace(/%dir%/gi, "left")).addClass(r),
3446                            i = m.arrowRight = c(t.replace(/%title%/gi, o.tNext).replace(/%dir%/gi, "right")).addClass(r);
3447                        e.click(function() {
3448                            m.prev()
3449                        }), i.click(function() {
3450                            m.next()
3451                        }), m.container.append(e.add(i))
3452                    }
3453                }), d("Change" + t, function() {
3454                    m._preloadTimeout && clearTimeout(m._preloadTimeout), m._preloadTimeout = setTimeout(function() {
3455                        m.preloadNearbyImages(), m._preloadTimeout = null
3456                    }, 16)
3457                }), d(l + t, function() {
3458                    g.off(t), m.wrap.off("click" + t), m.arrowRight = m.arrowLeft = null
3459                })
3460            },
3461            next: function() {
3462                m.direction = !0, m.index = F(m.index + 1), m.updateItemHTML()
3463            },
3464            prev: function() {
3465                m.direction = !1, m.index = F(m.index - 1), m.updateItemHTML()
3466            },
3467            goTo: function(t) {
3468                m.direction = t >= m.index, m.index = t, m.updateItemHTML()
3469            },
3470            preloadNearbyImages: function() {
3471                var t, e = m.st.gallery.preload,
3472                    i = Math.min(e[0], m.items.length),
3473                    s = Math.min(e[1], m.items.length);
3474                for (t = 1; t <= (m.direction ? s : i); t++) m._preloadItem(m.index + t);
3475                for (t = 1; t <= (m.direction ? i : s); t++) m._preloadItem(m.index - t)
3476            },
3477            _preloadItem: function(t) {
3478                if (t = F(t), !m.items[t].preloaded) {
3479                    var e = m.items[t];
3480                    e.parsed || (e = m.parseEl(t)), p("LazyLoad", e), "image" === e.type && (e.img = c('<img class="mfp-img" />').on("load.mfploader", function() {
3481                        e.hasSize = !0
3482                    }).on("error.mfploader", function() {
3483                        e.hasSize = !0, e.loadError = !0, p("LazyLoadError", e)
3484                    }).attr("src", e.src)), e.preloaded = !0
3485                }
3486            }
3487        }
3488    });
3489    var j = "retina";
3490    c.magnificPopup.registerModule(j, {
3491        options: {
3492            replaceSrc: function(t) {
3493                return t.src.replace(/\.\w+$/, function(t) {
3494                    return "@2x" + t
3495                })
3496            },
3497            ratio: 1
3498        },
3499        proto: {
3500            initRetina: function() {
3501                if (1 < window.devicePixelRatio) {
3502                    var i = m.st.retina,
3503                        s = i.ratio;
3504                    1 < (s = isNaN(s) ? s() : s) && (d("ImageHasSize." + j, function(t, e) {
3505                        e.img.css({
3506                            "max-width": e.img[0].naturalWidth / s,
3507                            width: "100%"
3508                        })
3509                    }), d("ElementParse." + j, function(t, e) {
3510                        e.src = i.replaceSrc(e, s)
3511                    }))
3512                }
3513            }
3514        }
3515    }), o()
3516}),
3517function() {
3518    function e(t, e) {
3519        return function() {
3520            return t.apply(e, arguments)
3521        }
3522    }
3523    var s, t, i, l, n, r = [].indexOf || function(t) {
3524        for (var e = 0, i = this.length; e < i; e++)
3525            if (e in this && this[e] === t) return e;
3526        return -1
3527    };
3528
3529    function o() {}
3530
3531    function a() {
3532        this.keys = [], this.values = []
3533    }
3534
3535    function h() {
3536        "undefined" != typeof console && null !== console && console.warn("MutationObserver is not supported by your browser."), "undefined" != typeof console && null !== console && console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")
3537    }
3538
3539    function c(t) {
3540        null == t && (t = {}), this.scrollCallback = e(this.scrollCallback, this), this.scrollHandler = e(this.scrollHandler, this), this.resetAnimation = e(this.resetAnimation, this), this.start = e(this.start, this), this.scrolled = !0, this.config = this.util().extend(t, this.defaults), null != t.scrollContainer && (this.config.scrollContainer = document.querySelector(t.scrollContainer)), this.animationNameCache = new i, this.wowEvent = this.util().createEvent(this.config.boxClass)
3541    }
3542    o.prototype.extend = function(t, e) {
3543        var i, s;
3544        for (i in e) s = e[i], null == t[i] && (t[i] = s);
3545        return t
3546    }, o.prototype.isMobile = function(t) {
3547        return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t)
3548    }, o.prototype.createEvent = function(t, e, i, s) {
3549        var n;
3550        return null == e && (e = !1), null == i && (i = !1), null == s && (s = null), null != document.createEvent ? (n = document.createEvent("CustomEvent")).initCustomEvent(t, e, i, s) : null != document.createEventObject ? (n = document.createEventObject()).eventType = t : n.eventName = t, n
3551    }, o.prototype.emitEvent = function(t, e) {
3552        return null != t.dispatchEvent ? t.dispatchEvent(e) : e in (null != t) ? t[e]() : "on" + e in (null != t) ? t["on" + e]() : void 0
3553    }, o.prototype.addEvent = function(t, e, i) {
3554        return null != t.addEventListener ? t.addEventListener(e, i, !1) : null != t.attachEvent ? t.attachEvent("on" + e, i) : t[e] = i
3555    }, o.prototype.removeEvent = function(t, e, i) {
3556        return null != t.removeEventListener ? t.removeEventListener(e, i, !1) : null != t.detachEvent ? t.detachEvent("on" + e, i) : delete t[e]
3557    }, o.prototype.innerHeight = function() {
3558        return "innerHeight" in window ? window.innerHeight : document.documentElement.clientHeight
3559    }, t = o, i = this.WeakMap || this.MozWeakMap || (a.prototype.get = function(t) {
3560        var e, i, s, n;
3561        for (e = i = 0, s = (n = this.keys).length; i < s; e = ++i)
3562            if (n[e] === t) return this.values[e]
3563    }, a.prototype.set = function(t, e) {
3564        var i, s, n, o;
3565        for (i = s = 0, n = (o = this.keys).length; s < n; i = ++s)
3566            if (o[i] === t) return void(this.values[i] = e);
3567        return this.keys.push(t), this.values.push(e)
3568    }, a), s = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (h.notSupported = !0, h.prototype.observe = function() {}, h), l = this.getComputedStyle || function(i, t) {
3569        return this.getPropertyValue = function(t) {
3570            var e;
3571            return "float" === t && (t = "styleFloat"), n.test(t) && t.replace(n, function(t, e) {
3572                return e.toUpperCase()
3573            }), (null != (e = i.currentStyle) ? e[t] : void 0) || null
3574        }, this
3575    }, n = /(\-([a-z]){1})/g, this.WOW = (c.prototype.defaults = {
3576        boxClass: "wow",
3577        animateClass: "animated",
3578        offset: 0,
3579        mobile: !0,
3580        live: !0,
3581        callback: null,
3582        scrollContainer: null
3583    }, c.prototype.init = function() {
3584        var t;
3585        return this.element = window.document.documentElement, "interactive" === (t = document.readyState) || "complete" === t ? this.start() : this.util().addEvent(document, "DOMContentLoaded", this.start), this.finished = []
3586    }, c.prototype.start = function() {
3587        var n, t, e, i, r;
3588        if (this.stopped = !1, this.boxes = function() {
3589                var t, e, i, s;
3590                for (s = [], t = 0, e = (i = this.element.querySelectorAll("." + this.config.boxClass)).length; t < e; t++) n = i[t], s.push(n);
3591                return s
3592            }.call(this), this.all = function() {
3593                var t, e, i, s;
3594                for (s = [], t = 0, e = (i = this.boxes).length; t < e; t++) n = i[t], s.push(n);
3595                return s
3596            }.call(this), this.boxes.length)
3597            if (this.disabled()) this.resetStyle();
3598            else
3599                for (t = 0, e = (i = this.boxes).length; t < e; t++) n = i[t], this.applyStyle(n, !0);
3600        if (this.disabled() || (this.util().addEvent(this.config.scrollContainer || window, "scroll", this.scrollHandler), this.util().addEvent(window, "resize", this.scrollHandler), this.interval = setInterval(this.scrollCallback, 50)), this.config.live) return new s((r = this, function(t) {
3601            var e, i, n, o, s;
3602            for (s = [], e = 0, i = t.length; e < i; e++) o = t[e], s.push(function() {
3603                var t, e, i, s;
3604                for (s = [], t = 0, e = (i = o.addedNodes || []).length; t < e; t++) n = i[t], s.push(this.doSync(n));
3605                return s
3606            }.call(r));
3607            return s
3608        })).observe(document.body, {
3609            childList: !0,
3610            subtree: !0
3611        })
3612    }, c.prototype.stop = function() {
3613        if (this.stopped = !0, this.util().removeEvent(this.config.scrollContainer || window, "scroll", this.scrollHandler), this.util().removeEvent(window, "resize", this.scrollHandler), null != this.interval) return clearInterval(this.interval)
3614    }, c.prototype.sync = function(t) {
3615        if (s.notSupported) return this.doSync(this.element)
3616    }, c.prototype.doSync = function(t) {
3617        var e, i, s, n, o;
3618        if (null == t && (t = this.element), 1 === t.nodeType) {
3619            for (o = [], i = 0, s = (n = (t = t.parentNode || t).querySelectorAll("." + this.config.boxClass)).length; i < s; i++) e = n[i], r.call(this.all, e) < 0 ? (this.boxes.push(e), this.all.push(e), this.stopped || this.disabled() ? this.resetStyle() : this.applyStyle(e, !0), o.push(this.scrolled = !0)) : o.push(void 0);
3620            return o
3621        }
3622    }, c.prototype.show = function(t) {
3623        return this.applyStyle(t), t.className = t.className + " " + this.config.animateClass, null != this.config.callback && this.config.callback(t), this.util().emitEvent(t, this.wowEvent), this.util().addEvent(t, "animationend", this.resetAnimation), this.util().addEvent(t, "oanimationend", this.resetAnimation), this.util().addEvent(t, "webkitAnimationEnd", this.resetAnimation), this.util().addEvent(t, "MSAnimationEnd", this.resetAnimation), t
3624    }, c.prototype.applyStyle = function(t, e) {
3625        var i, s, n, o;
3626        return s = t.getAttribute("data-wow-duration"), i = t.getAttribute("data-wow-delay"), n = t.getAttribute("data-wow-iteration"), this.animate((o = this, function() {
3627            return o.customStyle(t, e, s, i, n)
3628        }))
3629    }, c.prototype.animate = "requestAnimationFrame" in window ? function(t) {
3630        return window.requestAnimationFrame(t)
3631    } : function(t) {
3632        return t()
3633    }, c.prototype.resetStyle = function() {
3634        var t, e, i, s, n;
3635        for (n = [], e = 0, i = (s = this.boxes).length; e < i; e++) t = s[e], n.push(t.style.visibility = "visible");
3636        return n
3637    }, c.prototype.resetAnimation = function(t) {
3638        var e;
3639        if (0 <= t.type.toLowerCase().indexOf("animationend")) return (e = t.target || t.srcElement).className = e.className.replace(this.config.animateClass, "").trim()
3640    }, c.prototype.customStyle = function(t, e, i, s, n) {
3641        return e && this.cacheAnimationName(t), t.style.visibility = e ? "hidden" : "visible", i && this.vendorSet(t.style, {
3642            animationDuration: i
3643        }), s && this.vendorSet(t.style, {
3644            animationDelay: s
3645        }), n && this.vendorSet(t.style, {
3646            animationIterationCount: n
3647        }), this.vendorSet(t.style, {
3648            animationName: e ? "none" : this.cachedAnimationName(t)
3649        }), t
3650    }
3650, c.prototype.vendors = ["moz", "webkit"], c.prototype.vendorSet = function(n, t) {
3651        var o, e, r, a;
3652        for (o in e = [], t) r = t[o], n["" + o] = r, e.push(function() {
3653            var t, e, i, s;
3654            for (s = [], t = 0, e = (i = this.vendors).length; t < e; t++) a = i[t], s.push(n["" + a + o.charAt(0).toUpperCase() + o.substr(1)] = r);
3655            return s
3656        }.call(this));
3657        return e
3658    }, c.prototype.vendorCSS = function(t, e) {
3659        var i, s, n, o, r, a;
3660        for (o = (r = l(t)).getPropertyCSSValue(e), i = 0, s = (n = this.vendors).length; i < s; i++) a = n[i], o = o || r.getPropertyCSSValue("-" + a + "-" + e);
3661        return o
3662    }, c.prototype.animationName = function(e) {
3663        var i;
3664        try {
3665            i = this.vendorCSS(e, "animation-name").cssText
3666        } catch (t) {
3667            i = l(e).getPropertyValue("animation-name")
3668        }
3669        return "none" === i ? "" : i
3670    }, c.prototype.cacheAnimationName = function(t) {
3671        return this.animationNameCache.set(t, this.animationName(t))
3672    }, c.prototype.cachedAnimationName = function(t) {
3673        return this.animationNameCache.get(t)
3674    }, c.prototype.scrollHandler = function() {
3675        return this.scrolled = !0
3676    }, c.prototype.scrollCallback = function() {
3677        var n;
3678        if (this.scrolled && (this.scrolled = !1, this.boxes = function() {
3679                var t, e, i, s;
3680                for (s = [], t = 0, e = (i = this.boxes).length; t < e; t++)(n = i[t]) && (this.isVisible(n) ? this.show(n) : s.push(n));
3681                return s
3682            }.call(this), !this.boxes.length && !this.config.live)) return this.stop()
3683    }, c.prototype.offsetTop = function(t) {
3684        for (var e; void 0 === t.offsetTop;) t = t.parentNode;
3685        for (e = t.offsetTop; t = t.offsetParent;) e += t.offsetTop;
3686        return e
3687    }, c.prototype.isVisible = function(t) {
3688        var e, i, s, n, o;
3689        return i = t.getAttribute("data-wow-offset") || this.config.offset, n = (o = this.config.scrollContainer && this.config.scrollContainer.scrollTop || window.pageYOffset) + Math.min(this.element.clientHeight, this.util().innerHeight()) - i, e = (s = this.offsetTop(t)) + t.clientHeight, s <= n && o <= e
3690    }, c.prototype.util = function() {
3691        return null != this._util ? this._util : this._util = new t
3692    }, c.prototype.disabled = function() {
3693        return !this.config.mobile && this.util().isMobile(navigator.userAgent)
3694    }, c)
3695}.call(this),
3696    function(e) {
3697        "function" == typeof define && define.amd ? define(["jquery"], function(t) {
3698            return e(t, document, window, navigator)
3699        }) : "object" == typeof exports ? e(require("jquery"), document, window, navigator) : e(jQuery, document, window, navigator)
3700    }(function(l, h, c, t, d) {
3701        "use strict";
3702        var e, i, s = 0,
3703            n = (e = t.userAgent, i = /msie\s\d+/i, 0 < e.search(i) && i.exec(e).toString().split(" ")[1] < 9 && (l("html").addClass("lt-ie9"), !0));
3704        Function.prototype.bind || (Function.prototype.bind = function(s) {
3705            var n = this,
3706                o = [].slice;
3707            if ("function" != typeof n) throw new TypeError;
3708            var r = o.call(arguments, 1),
3709                a = function() {
3710                    if (this instanceof a) {
3711                        var t = function() {};
3712                        t.prototype = n.prototype;
3713                        var e = new t,
3714                            i = n.apply(e, r.concat(o.call(arguments)));
3715                        return Object(i) === i ? i : e
3716                    }
3717                    return n.apply(s, r.concat(o.call(arguments)))
3718                };
3719            return a
3720        }), Array.prototype.indexOf || (Array.prototype.indexOf = function(t, e) {
3721            var i;
3722            if (null == this) throw new TypeError('"this" is null or not defined');
3723            var s = Object(this),
3724                n = s.length >>> 0;
3725            if (0 == n) return -1;
3726            var o = +e || 0;
3727            if (Math.abs(o) === 1 / 0 && (o = 0), n <= o) return -1;
3728            for (i = Math.max(0 <= o ? o : n - Math.abs(o), 0); i < n;) {
3729                if (i in s && s[i] === t) return i;
3730                i++
3731            }
3732            return -1
3733        });
3734
3735        function o(t, e, i) {
3736            this.VERSION = "2.2.0", this.input = t, this.plugin_count = i, this.current_plugin = 0, this.calc_count = 0, this.update_tm = 0, this.old_from = 0, this.old_to = 0, this.old_min_interval = null, this.raf_id = null, this.dragging = !1, this.force_redraw = !1, this.no_diapason = !1, this.has_tab_index = !0, this.is_key = !1, this.is_update = !1, this.is_start = !0, this.is_finish = !1, this.is_active = !1, this.is_resize = !1, this.is_click = !1, e = e || {}, this.$cache = {
3737                win: l(c),
3738                body: l(h.body),
3739                input: l(t),
3740                cont: null,
3741                rs: null,
3742                min: null,
3743                max: null,
3744                from: null,
3745                to: null,
3746                single: null,
3747                bar: null,
3748                line: null,
3749                s_single: null,
3750                s_from: null,
3751                s_to: null,
3752                shad_single: null,
3753                shad_from: null,
3754                shad_to: null,
3755                edge: null,
3756                grid: null,
3757                grid_labels: []
3758            }, this.coords = {
3759                x_gap: 0,
3760                x_pointer: 0,
3761                w_rs: 0,
3762                w_rs_old: 0,
3763                w_handle: 0,
3764                p_gap: 0,
3765                p_gap_left: 0,
3766                p_gap_right: 0,
3767                p_step: 0,
3768                p_pointer: 0,
3769                p_handle: 0,
3770                p_single_fake: 0,
3771                p_single_real: 0,
3772                p_from_fake: 0,
3773                p_from_real: 0,
3774                p_to_fake: 0,
3775                p_to_real: 0,
3776                p_bar_x: 0,
3777                p_bar_w: 0,
3778                grid_gap: 0,
3779                big_num: 0,
3780                big: [],
3781                big_w: [],
3782                big_p: [],
3783                big_x: []
3784            }, this.labels = {
3785                w_min: 0,
3786                w_max: 0,
3787                w_from: 0,
3788                w_to: 0,
3789                w_single: 0,
3790                p_min: 0,
3791                p_max: 0,
3792                p_from_fake: 0,
3793                p_from_left: 0,
3794                p_to_fake: 0,
3795                p_to_left: 0,
3796                p_single_fake: 0,
3797                p_single_left: 0
3798            };
3799            var s, n, o, r = this.$cache.input,
3800                a = r.prop("value");
3801            for (o in s = {
3802                    type: "single",
3803                    min: 10,
3804                    max: 100,
3805                    from: null,
3806                    to: null,
3807                    step: 1,
3808                    min_interval: 0,
3809                    max_interval: 0,
3810                    drag_interval: !1,
3811                    values: [],
3812                    p_values: [],
3813                    from_fixed: !1,
3814                    from_min: null,
3815                    from_max: null,
3816                    from_shadow: !1,
3817                    to_fixed: !1,
3818                    to_min: null,
3819                    to_max: null,
3820                    to_shadow: !1,
3821                    prettify_enabled: !0,
3822                    prettify_separator: " ",
3823                    prettify: null,
3824                    force_edges: !1,
3825                    keyboard: !0,
3826                    grid: !1,
3827                    grid_margin: !0,
3828                    grid_num: 4,
3829                    grid_snap: !1,
3830                    hide_min_max: !1,
3831                    hide_from_to: !1,
3832                    prefix: "",
3833                    postfix: "",
3834                    max_postfix: "",
3835                    decorate_both: !0,
3836                    values_separator: " — ",
3837                    input_values_separator: ";",
3838                    disable: !1,
3839                    block: !1,
3840                    extra_classes: "",
3841                    scope: null,
3842                    onStart: null,
3843                    onChange: null,
3844                    onFinish: null,
3845                    onUpdate: null
3846                }, "INPUT" !== r[0].nodeName && console && console.warn && console.warn("Base element should be <input>!", r[0]), (n = {
3847                    type: r.data("type"),
3848                    min: r.data("min"),
3849                    max: r.data("max"),
3850                    from: r.data("from"),
3851                    to: r.data("to"),
3852                    step: r.data("step"),
3853                    min_interval: r.data("minInterval"),
3854                    max_interval: r.data("maxInterval"),
3855                    drag_interval: r.data("dragInterval"),
3856                    values: r.data("values"),
3857                    from_fixed: r.data("fromFixed"),
3858                    from_min: r.data("fromMin"),
3859                    from_max: r.data("fromMax"),
3860                    from_shadow: r.data("fromShadow"),
3861                    to_fixed: r.data("toFixed"),
3862                    to_min: r.data("toMin"),
3863                    to_max: r.data("toMax"),
3864                    to_shadow: r.data("toShadow"),
3865                    prettify_enabled: r.data("prettifyEnabled"),
3866                    prettify_separator: r.data("prettifySeparator"),
3867                    force_edges: r.data("forceEdges"),
3868                    keyboard: r.data("keyboard"),
3869                    grid: r.data("grid"),
3870                    grid_margin: r.data("gridMargin"),
3871                    grid_num: r.data("gridNum"),
3872                    grid_snap: r.data("gridSnap"),
3873                    hide_min_max: r.data("hideMinMax"),
3874                    hide_from_to: r.data("hideFromTo"),
3875                    prefix: r.data("prefix"),
3876                    postfix: r.data("postfix"),
3877                    max_postfix: r.data("maxPostfix"),
3878                    decorate_both: r.data("decorateBoth"),
3879                    values_separator: r.data("valuesSeparator"),
3880                    input_values_separator: r.data("inputValuesSeparator"),
3881                    disable: r.data("disable"),
3882                    block: r.data("block"),
3883                    extra_classes: r.data("extraClasses")
3884                }).values = n.values && n.values.split(","), n) n.hasOwnProperty(o) && (n[o] !== d && "" !== n[o] || delete n[o]);
3885            a !== d && "" !== a && ((a = a.split(n.input_values_separator || e.input_values_separator || ";"))[0] && a[0] == +a[0] && (a[0] = +a[0]), a[1] && a[1] == +a[1] && (a[1] = +a[1]), e && e.values && e.values.length ? (s.from = a[0] && e.values.indexOf(a[0]), s.to = a[1] && e.values.indexOf(a[1])) : (s.from = a[0] && +a[0], s.to = a[1] && +a[1])), l.extend(s, e), l.extend(s, n), this.options = s, this.update_check = {}, this.validate(), this.result = {
3886                input: this.$cache.input,
3887                slider: null,
3888                min: this.options.min,
3889                max: this.options.max,
3890                from: this.options.from,
3891                from_percent: 0,
3892                from_value: null,
3893                to: this.options.to,
3894                to_percent: 0,
3895                to_value: null
3896            }, this.init()
3897        }
3898        o.prototype = {
3899                init: function(t) {
3900                    this.no_diapason = !1, this.coords.p_step = this.convertToPercent(this.options.step, !0), this.target = "base", this.toggleInput(), this.append(), this.setMinMax(), t ? (this.force_redraw = !0, this.calc(!0), this.callOnUpdate()) : (this.force_redraw = !0, this.calc(!0), this.callOnStart()), this.updateScene()
3901                },
3902                append: function() {
3903                    var t = '<span class="irs js-irs-' + this.plugin_count + " " + this.options.extra_classes + '"></span>';
3904                    this.$cache.input.before(t), this.$cache.input.prop("readonly", !0), this.$cache.cont = this.$cache.input.prev(), this.result.slider = this.$cache.cont, this.$cache.cont.html('<span class="irs"><span class="irs-line" tabindex="0"><span class="irs-line-left"></span><span class="irs-line-mid"></span><span class="irs-line-right"></span></span><span class="irs-min">0</span><span class="irs-max">1</span><span class="irs-from">0</span><span class="irs-to">0</span><span class="irs-single">0</span></span><span class="irs-grid"></span><span class="irs-bar"></span>
vendor: 8,015 bytes, lines 3904-3938
3904'), this.$cache.rs = this.$cache.cont.find(".irs"), this.$cache.min = this.$cache.cont.find(".irs-min"), this.$cache.max = this.$cache.cont.find(".irs-max"), this.$cache.from = this.$cache.cont.find(".irs-from"), this.$cache.to = this.$cache.cont.find(".irs-to"), this.$cache.single = this.$cache.cont.find(".irs-single"), this.$cache.bar = this.$cache.cont.find(".irs-bar"), this.$cache.line = this.$cache.cont.find(".irs-line"), this.$cache.grid = this.$cache.cont.find(".irs-grid"), "single" === this.options.type ? (this.$cache.cont.append('<span class="irs-bar-edge"></span><span class="irs-shadow shadow-single"></span><span class="irs-slider single"></span>'), this.$cache.edge = this.$cache.cont.find(".irs-bar-edge"), this.$cache.s_single = this.$cache.cont.find(".single"), this.$cache.from[0].style.visibility = "hidden", this.$cache.to[0].style.visibility = "hidden", this.$cache.shad_single = this.$cache.cont.find(".shadow-single")) : (this.$cache.cont.append('<span class="irs-shadow shadow-from"></span><span class="irs-shadow shadow-to"></span><span class="irs-slider from"></span><span class="irs-slider to"></span>'), this.$cache.s_from = this.$cache.cont.find(".from"), this.$cache.s_to = this.$cache.cont.find(".to"), this.$cache.shad_from = this.$cache.cont.find(".shadow-from"), this.$cache.shad_to = this.$cache.cont.find(".shadow-to"), this.setTopHandler()), this.options.hide_from_to && (this.$cache.from[0].style.display = "none", this.$cache.to[0].style.display = "none", this.$cache.single[0].style.display = "none"), this.appendGrid(), this.options.disable ? (this.appendDisableMask(), this.$cache.input[0].disabled = !0) : (this.$cache.input[0].disabled = !1, this.removeDisableMask(), this.bindEvents()), this.options.disable || (this.options.block ? this.appendDisableMask() : this.removeDisableMask()), this.options.drag_interval && (this.$cache.bar[0].style.cursor = "ew-resize")
3905                },
3906                setTopHandler: function() {
3907                    var t = this.options.min,
3908                        e = this.options.max,
3909                        i = this.options.from,
3910                        s = this.options.to;
3911                    t < i && s === e ? this.$cache.s_from.addClass("type_last") : s < e && this.$cache.s_to.addClass("type_last")
3912                },
3913                changeLevel: function(t) {
3914                    switch (t) {
3915                        case "single":
3916                            this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_single_fake), this.$cache.s_single.addClass("state_hover");
3917                            break;
3918                        case "from":
3919                            this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake), this.$cache.s_from.addClass("state_hover"), this.$cache.s_from.addClass("type_last"), this.$cache.s_to.removeClass("type_last");
3920                            break;
3921                        case "to":
3922                            this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_to_fake), this.$cache.s_to.addClass("state_hover"), this.$cache.s_to.addClass("type_last"), this.$cache.s_from.removeClass("type_last");
3923                            break;
3924                        case "both":
3925                            this.coords.p_gap_left = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake), this.coords.p_gap_right = this.toFixed(this.coords.p_to_fake - this.coords.p_pointer), this.$cache.s_to.removeClass("type_last"), this.$cache.s_from.removeClass("type_last")
3926                    }
3927                },
3928                appendDisableMask: function() {
3929                    this.$cache.cont.append('<span class="irs-disable-mask"></span>'), this.$cache.cont.addClass("irs-disabled")
3930                },
3931                removeDisableMask: function() {
3932                    this.$cache.cont.remove(".irs-disable-mask"), this.$cache.cont.removeClass("irs-disabled")
3933                },
3934                remove: function() {
3935                    this.$cache.cont.remove(), this.$cache.cont = null, this.$cache.line.off("keydown.irs_" + this.plugin_count), this.$cache.body.off("touchmove.irs_" + this.plugin_count), this.$cache.body.off("mousemove.irs_" + this.plugin_count), this.$cache.win.off("touchend.irs_" + this.plugin_count), this.$cache.win.off("mouseup.irs_" + this.plugin_count), n && (this.$cache.body.off("mouseup.irs_" + this.plugin_count), this.$cache.body.off("mouseleave.irs_" + this.plugin_count)), this.$cache.grid_labels = [], this.coords.big = [], this.coords.big_w = [], this.coords.big_p = [], this.coords.big_x = [], cancelAnimationFrame(this.raf_id)
3936                },
3937                bindEvents: function() {
3938                    this.no_diapason || (this.$cache.body.on("touchmove.irs_" + this.plugin_count, this.pointerMove.bind(this)), this.$cache.body.on("mousemove.irs_" + this.plugin_count, this.pointerMove.bind(this)), this.$cache.win.on("touchend.irs_" + this.plugin_count, this.pointerUp.bind(this)), this.$cache.win.on("mouseup.irs_" + this.plugin_count, this.pointerUp.bind(this)), this.$cache.line.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")), this.$cache.line.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")), this.$cache.line.on("focus.irs_" + this.plugin_count, this.pointerFocus.bind(this)), this.options.drag_interval && "double" === this.options.type ? (this.$cache.bar.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "both")), this.$cache.bar.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "both"))) : (this.$cache.bar.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")), this.$cache.bar.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"))), "single" === this.options.type ? (this.$cache.single.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "single")), this.$cache.s_single.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "single")), this.$cache.shad_single.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")), this.$cache.single.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "single")), this.$cache.s_single.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "single")), this.$cache.edge.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")), this.$cache.shad_single.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"))) : (this.$cache.single.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, null)), this.$cache.single.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, null)), this.$cache.from.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "from")), this.$cache.s_from.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "from")), this.$cache.to.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "to")), this.$cache.s_to.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "to")), this.$cache.shad_from.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")), this.$cache.shad_to.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")), this.$cache.from.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "from")), this.$cache.s_from.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "from")), this.$cache.to.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "to")), this.$cache.s_to.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "to")), this.$cache.shad_from.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click")), this.$cache.shad_to.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"))), this.options.keyboard && this.$cache.line.on("key
3938down.irs_" + this.plugin_count, this.key.bind(this, "keyboard")), n && (this.$cache.body.on("mouseup.irs_" + this.plugin_count, this.pointerUp.bind(this)), this.$cache.body.on("mouseleave.irs_" + this.plugin_count, this.pointerUp.bind(this))))
3939                },
3940                pointerFocus: function(t) {
3941                    var e, i;
3942                    this.target || (e = (i = "single" === this.options.type ? this.$cache.single : this.$cache.from).offset().left, e += i.width() / 2 - 1, this.pointerClick("single", {
3943                        preventDefault: function() {},
3944                        pageX: e
3945                    }))
3946                },
3947                pointerMove: function(t) {
3948                    if (this.dragging) {
3949                        var e = t.pageX || t.originalEvent.touches && t.originalEvent.touches[0].pageX;
3950                        this.coords.x_pointer = e - this.coords.x_gap, this.calc()
3951                    }
3952                },
3953                pointerUp: function(t) {
3954                    this.current_plugin === this.plugin_count && this.is_active && (this.is_active = !1, this.$cache.cont.find(".state_hover").removeClass("state_hover"), this.force_redraw = !0, n && l("*").prop("unselectable", !1), this.updateScene(), this.restoreOriginalMinInterval(), (l.contains(this.$cache.cont[0], t.target) || this.dragging) && this.callOnFinish(), this.dragging = !1)
3955                },
3956                pointerDown: function(t, e) {
3957                    e.preventDefault();
3958                    var i = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;
3959                    2 !== e.button && ("both" === t && this.setTempMinInterval(), t = t || (this.target || "from"), this.current_plugin = this.plugin_count, this.target = t, this.is_active = !0, this.dragging = !0, this.coords.x_gap = this.$cache.rs.offset().left, this.coords.x_pointer = i - this.coords.x_gap, this.calcPointerPercent(), this.changeLevel(t), n && l("*").prop("unselectable", !0), this.$cache.line.trigger("focus"), this.updateScene())
3960                },
3961                pointerClick: function(t, e) {
3962                    e.preventDefault();
3963                    var i = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;
3964                    2 !== e.button && (this.current_plugin = this.plugin_count, this.target = t, this.is_click = !0, this.coords.x_gap = this.$cache.rs.offset().left, this.coords.x_pointer = +(i - this.coords.x_gap).toFixed(), this.force_redraw = !0, this.calc(), this.$cache.line.trigger("focus"))
3965                },
3966                key: function(t, e) {
3967                    if (!(this.current_plugin !== this.plugin_count || e.altKey || e.ctrlKey || e.shiftKey || e.metaKey)) {
3968                        switch (e.which) {
3969                            case 83:
3970                            case 65:
3971                            case 40:
3972                            case 37:
3973                                e.preventDefault(), this.moveByKey(!1);
3974                                break;
3975                            case 87:
3976                            case 68:
3977                            case 38:
3978                            case 39:
3979                                e.preventDefault(), this.moveByKey(!0)
3980                        }
3981                        return !0
3982                    }
3983                },
3984                moveByKey: function(t) {
3985                    var e = this.coords.p_pointer,
3986                        i = (this.options.max - this.options.min) / 100;
3987                    i = this.options.step / i, t ? e += i : e -= i, this.coords.x_pointer = this.toFixed(this.coords.w_rs / 100 * e), this.is_key = !0, this.calc()
3988                },
3989                setMinMax: function() {
3990                    if (this.options) {
3991                        if (this.options.hide_min_max) return this.$cache.min[0].style.display = "none", void(this.$cache.max[0].style.display = "none");
3992                        if (this.options.values.length) this.$cache.min.html(this.decorate(this.options.p_values[this.options.min])), this.$cache.max.html(this.decorate(this.options.p_values[this.options.max]));
3993                        else {
3994                            var t = this._prettify(this.options.min),
3995                                e = this._prettify(this.options.max);
3996                            this.result.min_pretty = t, this.result.max_pretty = e, this.$cache.min.html(this.decorate(t, this.options.min)), this.$cache.max.html(this.decorate(e, this.options.max))
3997                        }
3998                        this.labels.w_min = this.$cache.min.outerWidth(!1), this.labels.w_max = this.$cache.max.outerWidth(!1)
3999                    }
4000                },
4001                setTempMinInterval: function() {
4002                    var t = this.result.to - this.result.from;
4003                    null === this.old_min_interval && (this.old_min_interval = this.options.min_interval), this.options.min_interval = t
4004                },
4005                restoreOriginalMinInterval: function() {
4006                    null !== this.old_min_interval && (this.options.min_interval = this.old_min_interval, this.old_min_interval = null)
4007                },
4008                calc: function(t) {
4009                    if (this.options && (this.calc_count++, 10 !== this.calc_count && !t || (this.calc_count = 0, this.coords.w_rs = this.$cache.rs.outerWidth(!1), this.calcHandlePercent()), this.coords.w_rs)) {
4010                        this.calcPointerPercent();
4011                        var e = this.getHandleX();
4012                        switch ("both" === this.target && (this.coords.p_gap = 0, e = this.getHandleX()), "click" === this.target && (this.coords.p_gap = this.coords.p_handle / 2, e = this.getHandleX(), this.options.drag_interval ? this.target = "both_one" : this.target = this.chooseHandle(e)), this.target) {
4013                            case "base":
4014                                var i = (this.options.max - this.options.min) / 100,
4015                                    s = (this.result.from - this.options.min) / i,
4016                                    n = (this.result.to - this.options.min) / i;
4017                                this.coords.p_single_real = this.toFixed(s), this.coords.p_from_real = this.toFixed(s), this.coords.p_to_real = this.toFixed(n), this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max), this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max), this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max), this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real), this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real), this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real), this.target = null;
4018                                break;
4019                            case "single":
4020                                if (this.options.from_fixed) break;
4021                                this.coords.p_single_real = this.convertToRealPercent(e), this.coords.p_single_real = this.calcWithStep(this.coords.p_single_real), this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max), this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real);
4022                                break;
4023                            case "from":
4024                                if (this.options.from_fixed) break;
4025                                this.coords.p_from_real = this.convertToRealPercent(e), this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real), this.coords.p_from_real > this.coords.p_to_real && (this.coords.p_from_real = this.coords.p_to_real), this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max), this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, "from"), this.coords.p_from_real = this.checkMaxInterval(this.coords.p_from_real, this.coords.p_to_real, "from"), this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);
4026                                break;
4027                            case "to":
4028                                if (this.options.to_fixed) break;
4029                                this.coords.p_to_real = this.convertToRealPercent(e), this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real), this.coords.p_to_real < this.coords.p_from_real && (this.coords.p_to_real = this.coords.p_from_real), this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max), this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, "to"), this.coords.p_to_real = this.checkMaxInterval(this.coords.p_to_real, this.coords.p_from_real, "to"), this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);
4030                                break;
4031                            case "both":
4032                                if (this.options.from_fixed || this.options.to_fixed) break;
4033                                e = this.toFixed(e + .001 * this.coords.p_handle), this.coords.p_from_real = this.convertToRealPercent(e) - this.coords.p_gap_left, this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real), this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max), this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, "from"), this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real), this.coords.p_to_real = this.convertToRealPercent(e) + this.coords.p_gap_right, this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real), this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max), this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, "to"), this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);
4034                                break;
4035                            case "both_one":
4036                                if (this.options.from_fixed || this.options.to_fixed) break;
4037                                var o = this.convertToRealPercent(e),
4038                                    r = this.result.from_percent,
4039                                    a = this.result.to_percent - r,
4040                                    l = a / 2,
4041                                    h = o - l,
4042                                    c = o + l;
4043                                h < 0 && (c = (h = 0) + a), 100 < c && (h = (c = 100) - a), this.coords.p_from_real = this.calcWithStep(h), this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max), this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real), this.coords.p_to_real = this.calcWithStep(c), this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max), this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real)
4044                        }
4045                        "single" === this.options.type ? (this.coords.p_bar_x = this.coords.p_handle / 2, this.coords.p_bar_w = this.coords.p_single_fake, this.result.from_percent = this.coords.p_single_real, this.result.from = this.convertToValue(this.coords.p_single_real), this.result.from_pretty = this._prettify(this.result.from), this.options.values.length && (this.result.from_value = this.options.values[this.result.from])) : (this.coords.p_bar_x = this.toFixed(this.coords.p_from_fake + this.coords.p_handle / 2), this.coords.p_bar_w = this.toFixed(this.coords.p_to_fake - this.coords.p_from_fake), this.result.from_percent = this.coords.p_from_real, this.result.from = this.convertToValue(this.coords.p_from_real), this.result.from_pretty = this._prettify(this.result.from), this.result.to_percent = this.coords.p_to_real, this.result.to = this.convertToValue(this.coords.p_to_real), this.result.to_pretty = this._prettify(this.result.to), this.options.values.length && (this.result.from_value = this.options.values[this.result.from], this.result.to_value = this.options.values[this.result.to])), this.calcMinMax(), this.calcLabels()
4046                    }
4047                },
4048                calcPointerPercent: function() {
4049                    this.coords.w_rs ? (this.coords.x_pointer < 0 || isNaN(this.coords.x_pointer) ? this.coords.x_pointer = 0 : this.coords.x_pointer > this.coords.w_rs && (this.coords.x_pointer = this.coords.w_rs), this.coords.p_pointer = this.toFixed(this.coords.x_pointer / this.coords.w_rs * 100)) : this.coords.p_pointer = 0
4050                },
4051                convertToRealPercent: function(t) {
4052                    return t / (100 - this.coords.p_handle) * 100
4053                },
4054                convertToFakePercent: function(t) {
4055                    return t / 100 * (100 - this.coords.p_handle)
4056                },
4057                getHandleX: function() {
4058                    var t = 100 - this.coords.p_handle,
4059                        e = this.toFixed(this.coords.p_pointer - this.coords.p_gap);
4060                    return e < 0 ? e = 0 : t < e && (e = t), e
4061                },
4062                calcHandlePercent: function() {
4063                    "single" === this.options.type ? this.coords.w_handle = this.$cache.s_single.outerWidth(!1) : this.coords.w_handle = this.$cache.s_from.outerWidth(!1), this.coords.p_handle = this.toFixed(this.coords.w_handle / this.coords.w_rs * 100)
4064                },
4065                chooseHandle: function(t) {
4066                    return "single" === this.options.type ? "single" : this.coords.p_from_real + (this.coords.p_to_real - this.coords.p_from_real) / 2 <= t ? this.options.to_fixed ? "from" : "to" : this.options.from_fixed ? "to" : "from"
4067                },
4068                calcMinMax: function() {
4069                    this.coords.w_rs && (this.labels.p_min = this.labels.w_min / this.coords.w_rs * 100, this.labels.p_max = this.labels.w_max / this.coords.w_rs * 100)
4070                },
4071                calcLabels: function() {
4072                    this.coords.w_rs && !this.options.hide_from_to && ("single" === this.options.type ? (this.labels.w_single = this.$cache.single.outerWidth(!1), this.labels.p_single_fake = this.labels.w_single / this.coords.w_rs * 100, this.labels.p_single_left = this.coords.p_single_fake + this.coords.p_handle / 2 - this.labels.p_single_fake / 2) : (this.labels.w_from = this.$cache.from.outerWidth(!1), this.labels.p_from_fake = this.labels.w_from / this.coords.w_rs * 100, this.labels.p_from_left = this.coords.p_from_fake + this.coords.p_handle / 2 - this.labels.p_from_fake / 2, this.labels.p_from_left = this.toFixed(this.labels.p_from_left), this.labels.p_from_left = this.checkEdges(this.labels.p_from_left, this.labels.p_from_fake), this.labels.w_to = this.$cache.to.outerWidth(!1), this.labels.p_to_fake = this.labels.w_to / this.coords.w_rs * 100, this.labels.p_to_left = this.coords.p_to_fake + this.coords.p_handle / 2 - this.labels.p_to_fake / 2, this.labels.p_to_left = this.toFixed(this.labels.p_to_left), this.labels.p_to_left = this.checkEdges(this.labels.p_to_left, this.labels.p_to_fake), this.labels.w_single = this.$cache.single.outerWidth(!1), this.labels.p_single_fake = this.labels.w_single / this.coords.w_rs * 100, this.labels.p_single_left = (this.labels.p_from_left + this.labels.p_to_left + this.labels.p_to_fake) / 2 - this.labels.p_single_fake / 2, this.labels.p_single_left = this.toFixed(this.labels.p_single_left)), this.labels.p_single_left = this.checkEdges(this.labels.p_single_left, this.labels.p_single_fake))
4073                },
4074                updateScene: function() {
4075                    this.raf_id && (cancelAnimationFrame(this.raf_id), this.raf_id = null), clearTimeout(this.update_tm), this.update_tm = null, this.options && (this.drawHandles(), this.is_active ? this.raf_id = requestAnimationFrame(this.updateScene.bind(this)) : this.update_tm = setTimeout(this.updateScene.bind(this), 300))
4076                },
4077                drawHandles: function() {
4078                    this.coords.w_rs = this.$cache.rs.outerWidth(!1), this.coords.w_rs && (this.coords.w_rs !== this.coords.w_rs_old && (this.target = "base", this.is_resize = !0), this.coords.w_rs === this.coords.w_rs_old && !this.force_redraw || (this.setMinMax(), this.calc(!0), this.drawLabels(), this.options.grid && (this.calcGridMargin(), this.calcGridLabels()), this.force_redraw = !0, this.coords.w_rs_old = this.coords.w_rs, this.drawShadow()), this.coords.w_rs && (this.dragging || this.force_redraw || this.is_key) && ((this.old_from !== this.result.from || this.old_to !== this.result.to || this.force_redraw || this.is_key) && (this.drawLabels(), this.$cache.bar[0].style.left = this.coords.p_bar_x + "%", this.$cache.bar[0].style.width = this.coords.p_bar_w + "%", "single" === this.options.type ? this.$cache.s_single[0].style.left = this.coords.p_single_fake + "%" : (this.$cache.s_from[0].style.left = this.coords.p_from_fake + "%", this.$cache.s_to[0].style.left = this.coords.p_to_fake + "%", this.old_from === this.result.from && !this.force_redraw || (this.$cache.from[0].style.left = this.labels.p_from_left + "%"), this.old_to === this.result.to && !this.force_redraw || (this.$cache.to[0].style.left = this.labels.p_to_left + "%")), this.$cache.single[0].style.left = this.labels.p_single_left + "%", this.writeToInput(), this.old_from === this.result.from && this.old_to === this.result.to || this.is_start || (this.$cache.input.trigger("change"), this.$cache.input.trigger("input")), this.old_from = this.result.from, this.old_to = this.result.to, this.is_resize || this.is_update || this.is_start || this.is_finish || this.callOnChange(), (this.is_key || this.is_click) && (this.is_key = !1, this.is_click = !1, this.callOnFinish()), this.is_update = !1, this.is_resize = !1, this.is_finish = !1), this.is_start = !1, this.is_key = !1, this.is_click = !1, this.force_redraw = !1))
4079                },
4080                drawLabels: function() {
4081                    if (this.options) {
4082                        var t, e, i, s, n, o = this.options.values.length,
4083                            r = this.options.p_values;
4084                        if (!this.options.hide_from_to)
4085                            if ("single" === this.options.type) t = o ? this.decorate(r[this.result.from]) : (s = this._prettify(this.result.from), this.decorate(s, this.result.from)), this.$cache.single.html(t), this.calcLabels(), this.labels.p_single_left < this.labels.p_min + 1 ? this.$cache.min[0].style.visibility = "hidden" : this.$cache.min[0].style.visibility = "visible", this.labels.p_single_left + this.labels.p_single_fake > 100 - this.labels.p_max - 1 ? this.$cache.max[0].style.visibility = "hidden" : this.$cache.max[0].style.visibility = "visible";
4086                            else {
4087                                i = o ? (this.options.decorate_both ? (t = this.decorate(r[this.result.from]), t += this.options.values_separator, t += this.decorate(r[this.result.to])) : t = this.decorate(r[this.result.from] + this.options.values_separator + r[this.result.to]), e = this.decorate(r[this.result.from]), this.decorate(r[this.result.to])) : (s = this._prettify(this.result.from), n = this._prettify(this.result.to), this.options.decorate_both ? (t = this.decorate(s, this.result.from), t += this.options.values_separator, t += this.decorate(n, this.result.to)) : t = this.decorate(s + this.options.values_separator + n, this.result.to), e = this.decorate(s, this.result.from), this.decorate(n, this.result.to)), this.$cache.single.html(t), this.$cache.from.html(e), this.$cache.to.html(i), this.calcLabels();
4088                                var a = Math.min(this.labels.p_single_left, this.labels.p_from_left),
4089                                    l = this.labels.p_single_left + this.labels.p_single_fake,
4090                                    h = this.labels.p_to_left + this.labels.p_to_fake,
4091                                    c = Math.max(l, h);
4092                                this.labels.p_from_left + this.labels.p_from_fake >= this.labels.p_to_left ? (this.$cache.from[0].style.visibility = "hidden", this.$cache.to[0].style.visibility = "hidden", this.$cache.single[0].style.visibility = "visible", c = this.result.from === this.result.to ? ("from" === this.target ? this.$cache.from[0].style.visibility = "visible" : "to" === this.target ? this.$cache.to[0].style.visibility = "visible" : this.target || (this.$cache.from[0].style.visibility = "visible"), this.$cache.single[0].style.visibility = "hidden", h) : (this.$cache.from[0].style.visibility = "hidden", this.$cache.to[0].style.visibility = "hidden", this.$cache.single[0].style.visibility = "visible", Math.max(l, h))
vendor: 2,282 bytes, lines 4092-4104
4092) : (this.$cache.from[0].style.visibility = "visible", this.$cache.to[0].style.visibility = "visible", this.$cache.single[0].style.visibility = "hidden"), a < this.labels.p_min + 1 ? this.$cache.min[0].style.visibility = "hidden" : this.$cache.min[0].style.visibility = "visible", c > 100 - this.labels.p_max - 1 ? this.$cache.max[0].style.visibility = "hidden" : this.$cache.max[0].style.visibility = "visible"
4093                            }
4094                    }
4095                },
4096                drawShadow: function() {
4097                    var t, e, i, s, n = this.options,
4098                        o = this.$cache,
4099                        r = "number" == typeof n.from_min && !isNaN(n.from_min),
4100                        a = "number" == typeof n.from_max && !isNaN(n.from_max),
4101                        l = "number" == typeof n.to_min && !isNaN(n.to_min),
4102                        h = "number" == typeof n.to_max && !isNaN(n.to_max);
4103                    "single" === n.type ? n.from_shadow && (r || a) ? (t = this.convertToPercent(r ? n.from_min : n.min), e = this.convertToPercent(a ? n.from_max : n.max) - t, t = this.toFixed(t - this.coords.p_handle / 100 * t), e = this.toFixed(e - this.coords.p_handle / 100 * e), t += this.coords.p_handle / 2, o.shad_single[0].style.display = "block", o.shad_single[0].style.left = t + "%", o.shad_single[0].style.width = e + "%") : o.shad_single[0].style.display = "none" : (n.from_shadow && (r || a) ? (t = this.convertToPercent(r ? n.from_min : n.min), e = this.convertToPercent(a ? n.from_max : n.max) - t, t = this.toFixed(t - this.coords.p_handle / 100 * t), e = this.toFixed(e - this.coords.p_handle / 100 * e), t += this.coords.p_handle / 2, o.shad_from[0].style.display = "block", o.shad_from[0].style.left = t + "%", o.shad_from[0].style.width = e + "%") : o.shad_from[0].style.display = "none", n.to_shadow && (l || h) ? (i = this.convertToPercent(l ? n.to_min : n.min), s = this.convertToPercent(h ? n.to_max : n.max) - i, i = this.toFixed(i - this.coords.p_handle / 100 * i), s = this.toFixed(s - this.coords.p_handle / 100 * s), i += this.coords.p_handle / 2, o.shad_to[0].style.display = "block", o.shad_to[0].style.left = i + "%", o.shad_to[0].style.width = s + "%") : o.shad_to[0].style.display = "none")
4104                },
4105                writeToInput: function() {
4106                    "single" === this.options.type ? (this.options.values.length ? this.$cache.input.prop("value", this.result.from_value) : this.$cache.input.prop("value", this.result.from), this.$cache.input.data("from", this.result.from)) : (this.options.values.length ? this.$cache.input.prop("value", this.result.from_value + this.options.input_values_separator + this.result.to_value) : this.$cache.input.prop("value", this.result.from + this.options.input_values_separator + this.result.to), this.$cache.input.data("from", this.result.from), this.$cache.input.data("to", this.result.to))
4107                },
4108                callOnStart: function() {
4109                    this.writeToInput(), this.options.onStart && "function" == typeof this.options.onStart && (this.options.scope ? this.options.onStart.call(this.options.scope, this.result) : this.options.onStart(this.result))
4110                },
4111                callOnChange: function() {
4112                    this.writeToInput(), this.options.onChange && "function" == typeof this.options.onChange && (this.options.scope ? this.options.onChange.call(this.options.scope, this.result) : this.options.onChange(this.result))
4113                },
4114                callOnFinish: function() {
4115                    this.writeToInput(), this.options.onFinish && "function" == typeof this.options.onFinish && (this.options.scope ? this.options.onFinish.call(this.options.scope, this.result) : this.options.onFinish(this.result))
4116                },
4117                callOnUpdate: function() {
4118                    this.writeToInput(), this.options.onUpdate && "function" == typeof this.options.onUpdate && (this.options.scope ? this.options.onUpdate.call(this.options.scope, this.result) : this.options.onUpdate(this.result))
4119                },
4120                toggleInput: function() {
4121                    this.$cache.input.toggleClass("irs-hidden-input"), this.has_tab_index ? this.$cache.input.prop("tabindex", -1) : this.$cache.input.removeProp("tabindex"), this.has_tab_index = !this.has_tab_index
4122                },
4123                convertToPercent: function(t, e) {
4124                    var i, s = this.options.max - this.options.min,
4125                        n = s / 100;
4126                    return s ? (i = (e ? t : t - this.options.min) / n, this.toFixed(i)) : (this.no_diapason = !0, 0)
4127                },
4128                convertToValue: function(t) {
4129                    var e, i, s = this.options.min,
4130                        n = this.options.max,
4131                        o = s.toString().split(".")[1],
4132                        r = n.toString().split(".")[1],
4133                        a = 0,
4134                        l = 0;
4135                    if (0 === t) return this.options.min;
4136                    if (100 === t) return this.options.max;
4137                    o && (a = e = o.length), r && (a = i = r.length), e && i && (a = i <= e ? e : i), s < 0 && (s = +(s + (l = Math.abs(s))).toFixed(a), n = +(n + l).toFixed(a));
4138                    var h, c = (n - s) / 100 * t + s,
4139                        d = this.options.step.toString().split(".")[1];
4140                    return c = d ? +c.toFixed(d.length) : (c /= this.options.step, +(c *= this.options.step).toFixed(0)), l && (c -= l), (h = d ? +c.toFixed(d.length) : this.toFixed(c)) < this.options.min ? h = this.options.min : h > this.options.max && (h = this.options.max), h
4141                },
4142                calcWithStep: function(t) {
4143                    var e = Math.round(t / this.coords.p_step) * this.coords.p_step;
4144                    return 100 < e && (e = 100), 100 === t && (e = 100), this.toFixed(e)
4145                },
4146                checkMinInterval: function(t, e, i) {
4147                    var s, n, o = this.options;
4148                    return o.min_interval ? (s = this.convertToValue(t), n = this.convertToValue(e), "from" === i ? n - s < o.min_interval && (s = n - o.min_interval) : s - n < o.min_interval && (s = n + o.min_interval), this.convertToPercent(s)) : t
4149                },
4150                checkMaxInterval: function(t, e, i) {
4151                    var s, n, o = this.options;
4152                    return o.max_interval ? (s = this.convertToValue(t), n = this.convertToValue(e), "from" === i ? n - s > o.max_interval && (s = n - o.max_interval) : s - n > o.max_interval && (s = n + o.max_interval), this.convertToPercent(s)) : t
4153                },
4154                checkDiapason: function(t, e, i) {
4155                    var s = this.convertToValue(t),
4156                        n = this.options;
4157                    return "number" != typeof e && (e = n.min), "number" != typeof i && (i = n.max), s < e && (s = e), i < s && (s = i), this.convertToPercent(s)
4158                },
4159                toFixed: function(t) {
4160                    return +(t = t.toFixed(20))
4161                },
4162                _prettify: function(t) {
4163                    return this.options.prettify_enabled ? this.options.prettify && "function" == typeof this.options.prettify ? this.options.prettify(t) : this.prettify(t) : t
4164                },
4165                prettify: function(t) {
4166                    return t.toString().replace(/(\d{1,3}(?=(?:\d\d\d)+(?!\d)))/g, "$1" + this.options.prettify_separator)
4167                },
4168                checkEdges: function(t, e) {
4169                    return this.options.force_edges && (t < 0 ? t = 0 : 100 - e < t && (t = 100 - e)), this.toFixed(t)
4170                },
4171                validate: function() {
4172                    var t, e, i = this.options,
4173                        s = this.result,
4174                        n = i.values,
4175                        o = n.length;
4176                    if ("string" == typeof i.min && (i.min = +i.min), "string" == typeof i.max && (i.max = +i.max), "string" == typeof i.from && (i.from = +i.from), "string" == typeof i.to && (i.to = +i.to), "string" == typeof i.step && (i.step = +i.step), "string" == typeof i.from_min && (i.from_min = +i.from_min), "string" == typeof i.from_max && (i.from_max = +i.from_max), "string" == typeof i.to_min && (i.to_min = +i.to_min), "string" == typeof i.to_max && (i.to_max = +i.to_max), "string" == typeof i.grid_num && (i.grid_num = +i.grid_num), i.max < i.min && (i.max = i.min), o)
4177                        for (i.p_values = [], i.min = 0, i.max = o - 1, i.step = 1, i.grid_num = i.max, i.grid_snap = !0, e = 0; e < o; e++) t = +n[e], t = isNaN(t) ? n[e] : (n[e] = t, this._prettify(t)), i.p_values.push(t);
4178                    "number" == typeof i.from && !isNaN(i.from) || (i.from = i.min), "number" == typeof i.to && !isNaN(i.to) || (i.to = i.max), "single" === i.type ? (i.from < i.min && (i.from = i.min), i.from > i.max && (i.from = i.max)) : (i.from < i.min && (i.from = i.min), i.from > i.max && (i.from = i.max), i.to < i.min && (i.to = i.min), i.to > i.max && (i.to = i.max), this.update_check.from && (this.update_check.from !== i.from && i.from > i.to && (i.from = i.to), this.update_check.to !== i.to && i.to < i.from && (i.to = i.from)), i.from > i.to && (i.from = i.to), i.to < i.from && (i.to = i.from)), ("number" != typeof i.step || isNaN(i.step) || !i.step || i.step < 0) && (i.step = 1), "number" == typeof i.from_min && i.from < i.from_min && (i.from = i.from_min), "number" == typeof i.from_max && i.from > i.from_max && (i.from = i.from_max), "number" == typeof i.to_min && i.to < i.to_min && (i.to = i.to_min), "number" == typeof i.to_max && i.from > i.to_max && (i.to = i.to_max), s && (s.min !== i.min && (s.min = i.min), s.max !== i.max && (s.max = i.max), (s.from < s.min || s.from > s.max) && (s.from = i.from), (s.to < s.min || s.to >
4178 s.max) && (s.to = i.to)), ("number" != typeof i.min_interval || isNaN(i.min_interval) || !i.min_interval || i.min_interval < 0) && (i.min_interval = 0), ("number" != typeof i.max_interval || isNaN(i.max_interval) || !i.max_interval || i.max_interval < 0) && (i.max_interval = 0), i.min_interval && i.min_interval > i.max - i.min && (i.min_interval = i.max - i.min), i.max_interval && i.max_interval > i.max - i.min && (i.max_interval = i.max - i.min)
4179                },
4180                decorate: function(t, e) {
4181                    var i = "",
4182                        s = this.options;
4183                    return s.prefix && (i += s.prefix), i += t, s.max_postfix && (s.values.length && t === s.p_values[s.max] ? (i += s.max_postfix, s.postfix && (i += " ")) : e === s.max && (i += s.max_postfix, s.postfix && (i += " "))), s.postfix && (i += s.postfix), i
4184                },
4185                updateFrom: function() {
4186                    this.result.from = this.options.from, this.result.from_percent = this.convertToPercent(this.result.from), this.result.from_pretty = this._prettify(this.result.from), this.options.values && (this.result.from_value = this.options.values[this.result.from])
4187                },
4188                updateTo: function() {
4189                    this.result.to = this.options.to, this.result.to_percent = this.convertToPercent(this.result.to), this.result.to_pretty = this._prettify(this.result.to), this.options.values && (this.result.to_value = this.options.values[this.result.to])
4190                },
4191                updateResult: function() {
4192                    this.result.min = this.options.min, this.result.max = this.options.max, this.updateFrom(), this.updateTo()
4193                },
4194                appendGrid: function() {
4195                    if (this.options.grid) {
4196                        var t, e, i, s, n, o = this.options,
4197                            r = o.max - o.min,
4198                            a = o.grid_num,
4199                            l = 0,
4200                            h = 0,
4201                            c = 4,
4202                            d = "";
4203                        for (this.calcGridMargin(), l = o.grid_snap ? 50 < r ? (a = 50 / o.step, this.toFixed(o.step / .5)) : (a = r / o.step, this.toFixed(o.step / (r / 100))) : this.toFixed(100 / a), 4 < a && (c = 3), 7 < a && (c = 2), 14 < a && (c = 1), 28 < a && (c = 0), t = 0; t < a + 1; t++) {
4204                            for (i = c, 100 < (h = this.toFixed(l * t)) && (h = 100), s = ((this.coords.big[t] = h) - l * (t - 1)) / (i + 1), e = 1; e <= i && 0 !== h; e++) d += '<span class="irs-grid-pol small" style="left: ' + this.toFixed(h - s * e) + '%"></span>';
4205                            d += '<span class="irs-grid-pol" style="left: ' + h + '%"></span>', n = this.convertToValue(h), d += '<span class="irs-grid-text js-grid-text-' + t + '" style="left: ' + h + '%">' + (n = o.values.length ? o.p_values[n] : this._prettify(n)) + "</span>"
4206                        }
4207                        this.coords.big_num = Math.ceil(a + 1), this.$cache.cont.addClass("irs-with-grid"), this.$cache.grid.html(d), this.cacheGridLabels()
4208                    }
4209                },
4210                cacheGridLabels: function() {
4211                    var t, e, i = this.coords.big_num;
4212                    for (e = 0; e < i; e++) t = this.$cache.grid.find(".js-grid-text-" + e), this.$cache.grid_labels.push(t);
4213                    this.calcGridLabels()
4214                },
4215                calcGridLabels: function() {
4216                    var t, e, i = [],
4217                        s = [],
4218                        n = this.coords.big_num;
4219                    for (t = 0; t < n; t++) this.coords.big_w[t] = this.$cache.grid_labels[t].outerWidth(!1), this.coords.big_p[t] = this.toFixed(this.coords.big_w[t] / this.coords.w_rs * 100), this.coords.big_x[t] = this.toFixed(this.coords.big_p[t] / 2), i[t] = this.toFixed(this.coords.big[t] - this.coords.big_x[t]), s[t] = this.toFixed(i[t] + this.coords.big_p[t]);
4220                    for (this.options.force_edges && (i[0] < -this.coords.grid_gap && (i[0] = -this.coords.grid_gap, s[0] = this.toFixed(i[0] + this.coords.big_p[0]), this.coords.big_x[0] = this.coords.grid_gap), s[n - 1] > 100 + this.coords.grid_gap && (s[n - 1] = 100 + this.coords.grid_gap, i[n - 1] = this.toFixed(s[n - 1] - this.coords.big_p[n - 1]), this.coords.big_x[n - 1] = this.toFixed(this.coords.big_p[n - 1] - this.coords.grid_gap))), this.calcGridCollision(2, i, s), this.calcGridCollision(4, i, s), t = 0; t < n; t++) e = this.$cache.grid_labels[t][0], this.coords.big_x[t] !== Number.POSITIVE_INFINITY && (e.style.marginLeft = -this.coords.big_x[t] + "%")
4221                },
4222                calcGridCollision: function(t, e, i) {
4223                    var s, n, o, r = this.coords.big_num;
4224                    for (s = 0; s < r && !(r <= (n = s + t / 2)); s += t) o = this.$cache.grid_labels[n][0], i[s] <= e[n] ? o.style.visibility = "visible" : o.style.visibility = "hidden"
4225                },
4226                calcGridMargin: function() {
4227                    this.options.grid_margin && (this.coords.w_rs = this.$cache.rs.outerWidth(!1), this.coords.w_rs && ("single" === this.options.type ? this.coords.w_handle = this.$cache.s_single.outerWidth(!1) : this.coords.w_handle = this.$cache.s_from.outerWidth(!1), this.coords.p_handle = this.toFixed(this.coords.w_handle / this.coords.w_rs * 100), this.coords.grid_gap = this.toFixed(this.coords.p_handle / 2 - .1), this.$cache.grid[
42270].style.width = this.toFixed(100 - this.coords.p_handle) + "%", this.$cache.grid[0].style.left = this.coords.grid_gap + "%"))
4228                },
4229                update: function(t) {
4230                    this.input && (this.is_update = !0, this.options.from = this.result.from, this.options.to = this.result.to, this.update_check.from = this.result.from, this.update_check.to = this.result.to, this.options = l.extend(this.options, t), this.validate(), this.updateResult(t), this.toggleInput(), this.remove(), this.init(!0))
4231                },
4232                reset: function() {
4233                    this.input && (this.updateResult(), this.update())
4234                },
4235                destroy: function() {
4236                    this.input && (this.toggleInput(), this.$cache.input.prop("readonly", !1), l.data(this.input, "ionRangeSlider", null), this.remove(), this.input = null, this.options = null)
4237                }
4238            }, l.fn.ionRangeSlider = function(t) {
4239                return this.each(function() {
4240                    l.data(this, "ionRangeSlider") || l.data(this, "ionRangeSlider", new o(this, t, s++))
4241                })
4242            },
4243            function() {
4244                for (var o = 0, t = ["ms", "moz", "webkit", "o"], e = 0; e < t.length && !c.requestAnimationFrame; ++e) c.requestAnimationFrame = c[t[e] + "RequestAnimationFrame"], c.cancelAnimationFrame = c[t[e] + "CancelAnimationFrame"] || c[t[e] + "CancelRequestAnimationFrame"];
4245                c.requestAnimationFrame || (c.requestAnimationFrame = function(t, e) {
4246                    var i = (new Date).getTime(),
4247                        s = Math.max(0, 16 - (i - o)),
4248                        n = c.setTimeout(function() {
4249                            t(i + s)
4250                        }, s);
4251                    return o = i + s, n
4252                }), c.cancelAnimationFrame || (c.cancelAnimationFrame = function(t) {
4253                    clearTimeout(t)
4254                })
4255            }()
4256    }),
4257    function(o) {
4258        o.fn.footerReveal = function(t) {
4259            var e = o(this),
4260                i = e.prev(),
4261                s = o(window),
4262                n = o.extend({
4263                    shadow: !0,
4264                    shadowOpacity: .8,
4265                    zIndex: -100
4266                }, t);
4267            o.extend(!0, {}, n, t);
4268            return e.outerHeight() <= s.outerHeight() && (e.css({
4269                "z-index": n.zIndex,
4270                position: "fixed",
4271                bottom: 0
4272            }), n.shadow && i.css({
4273                "-moz-box-shadow": "0 20px 30px -20px rgba(0,0,0," + n.shadowOpacity + ")",
4274                "-webkit-box-shadow": "0 20px 30px -20px rgba(0,0,0," + n.shadowOpacity + ")",
4275                "box-shadow": "0 20px 30px -20px rgba(0,0,0," + n.shadowOpacity + ")"
4276            }), s.on("load resize", function() {
4277                e.css({
4278                    width: i.outerWidth()
4279                }), i.css({
4280                    "margin-bottom": e.outerHeight()
4281                })
4282            })), this
4283        }
4284    }(jQuery),
4285    function(t) {
4286        "function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof exports ? t(require("jquery")) : t(jQuery)
4287    }(function(c) {
4288        var n = {
4289            element: "body",
4290            position: null,
4291            type: "info",
4292            allow_dismiss: !0,
4293            allow_duplicates: !0,
4294            newest_on_top: !1,
4295            showProgressbar: !1,
4296            placement: {
4297                from: "top",
4298                align: "right"
4299            },
4300            offset: 20,
4301            spacing: 10,
4302            z_index: 1031,
4303            delay: 5e3,
4304            timer: 1e3,
4305            url_target: "_blank",
4306            mouse_over: null,
4307            animate: {
4308                enter: "animated fadeInDown",
4309                exit: "animated fadeOutUp"
4310            },
4311            onShow: null,
4312            onShown: null,
4313            onClose: null,
4314            onClosed: null,
4315            onClick: null,
4316            icon_type: "class",
4317            template: '<div data-notify="container" class="customized_notify alert alert-{0}" role="alert"><button type="button" aria-hidden="true" class="close" data-notify="dismiss">&times;</button><i><span data-notify="icon"></span></i> <span data-notify="title">{1}</span> <span data-notify="message">{2}</span><div class="progress" data-notify="progressbar"><div class="progress-bar progress-bar-{0}" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div></div><a href="{3}" target="{4}" data-notify="url"></a></div>'
4318        };
4319
4320        function i(t, e, i) {
4321            var l, h, s = {
4322                content: {
4323                    message: "object" == typeof e ? e.message : e,
4324                    title: e.title ? e.title : "",
4325                    icon: e.icon ? e.icon : "",
4326                    url: e.url ? e.url : "#",
4327                    target: e.target ? e.target : "-"
4328                }
4329            };
4330            i = c.extend(!0, {}, s, i), this.settings = c.extend(!0, {}, n, i), this._defaults = n, "-" === this.settings.content.target && (this.settings.content.target = this.settings.url_target), this.animations = {
4331                start: "webkitAnimationStart oanimationstart MSAnimationStart animationstart",
4332                end: "webkitAnimationEnd oanimationend MSAnimationEnd animationend"
4333            }, "number" == typeof this.settings.offset && (this.settings.offset = {
4334                x: this.settings.offset,
4335                y: this.settings.offset
4336            }), !this.settings.allow_duplicates && (this.settings.allow_duplicates || (l = this, h = !1, c('[data-notify="container"]').each(function(t, e) {
4337                var i = c(e),
4338                    s = i.find('[data-notify="title"]').html().trim(),
4339                    n = i.find('[data-notify="message"]').html().trim(),
4340                    o = s === c("<div>" + l.settings.content.title + "</div>").html().trim(),
4341                    r = n === c("<div>" + l.settings.content.message + "</div>").html().trim(),
4342                    a = i.hasClass("alert-" + l.settings.type);
4343                return o && r && a && (h = !0), !h
4344            }), h)) || this.init()
4345        }
4346        String.format = function() {
4347            var i = arguments;
4348            return arguments[0].replace(/(\{\{\d\}\}|\{\d\})/g, function(t) {
4349                if ("{{" === t.substring(0, 2)) return t;
4350                var e = parseInt(t.match(/\d/)[0]);
4351                return i[e + 1]
4352            })
4353        }, c.extend(i.prototype, {
4354            init: function() {
4355                var a = this;
4356                this.buildNotify(), this.settings.content.icon && this.setIcon(), "#" != this.settings.content.url && this.styleURL(), this.styleDismiss(), this.placement(), this.bind(), this.notify = {
4357                    $ele: this.$ele,
4358                    update: function(t, e) {
4359                        var i = {};
4360                        for (var s in "string" == typeof t ? i[t] = e : i = t, i) switch (s) {
4361                            case "type":
4362                                this.$ele.removeClass("alert-" + a.settings.type), this.$ele.find('[data-notify="progressbar"] > .progress-bar').removeClass("progress-bar-" + a.settings.type), a.settings.type = i[s], this.$ele.addClass("alert-" + i[s]).find('[data-notify="progressbar"] > .progress-bar').addClass("progress-bar-" + i[s]);
4363                                break;
4364                            case "icon":
4365                                var n = this.$ele.find('[data-notify="icon"]');
4366                                "class" === a.settings.icon_type.toLowerCase() ? n.removeClass(a.settings.content.icon).addClass(i[s]) : (n.is("img") || n.find("img"), n.attr("src", i[s])), a.settings.content.icon = i[t];
4367                                break;
4368                            case "progress":
4369                                var o = a.settings.delay - a.settings.delay * (i[s] / 100);
4370                                this.$ele.data("notify-delay", o), this.$ele.find('[data-notify="progressbar"] > div').attr("aria-valuenow", i[s]).css("width", i[s] + "%");
4371                                break;
4372                            case "url":
4373                                this.$ele.find('[data-notify="url"]').attr("href", i[s]);
4374                                break;
4375                            case "target":
4376                                this.$ele.find('[data-notify="url"]').attr("target", i[s]);
4377                                break;
4378                            default:
4379                                this.$ele.find('[data-notify="' + s + '"]').html(i[s])
4380                        }
4381                        var r = this.$ele.outerHeight() + parseInt(a.settings.spacing) + parseInt(a.settings.offset.y);
4382                        a.reposition(r)
4383                    },
4384                    close: function() {
4385                        a.close()
4386                    }
4387                }
4388            },
4389            buildNotify: function() {
4390                var t = this.settings.content;
4391                this.$ele = c(String.format(this.settings.template, this.settings.type, t.title, t.message, t.url, t.target)), this.$ele.attr("data-notify-position", this.settings.placement.from + "-" + this.settings.placement.align), this.settings.allow_dismiss || this.$ele.find('[data-notify="dismiss"]').css("display", "none"), (this.settings.delay <= 0 && !this.settings.showProgressbar || !this.settings.showProgressbar) && this.$ele.find('[data-notify="progressbar"]').remove()
4392            },
4393            setIcon: function() {
4394                "class" === this.settings.icon_type.toLowerCase() ? this.$ele.find('[data-notify="icon"]').addClass(this.settings.content.icon) : this.$ele.find('[data-notify="icon"]').is("img") ? this.$ele.find('[data-notify="icon"]').attr("src", this.settings.content.icon) : this.$ele.find('[data-notify="icon"]').append('<img src="' + this.settings.content.icon + '" alt="Notify Icon" />')
4395            },
4396            styleDismiss: function() {
4397                this.$ele.find('[data-notify="dismiss"]').css({
4398                    position: "absolute",
4399                    right: "10px",
4400                    top: "5px",
4401                    zIndex: this.settings.z_index + 2
4402                })
4403            },
4404            styleURL: function() {
4405                this.$ele.find('[data-notify="url"]').css({
4406                    backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)",
4407                    height: "100%",
4408                    left: 0,
4409                    position: "absolute",
4410                    top: 0,
4411                    width: "100%",
4412                    zIndex: this.settings.z_index + 1
4413                })
4414            },
4415            placement: function() {
4416                var i = this,
4417                    t = this.settings.offset.y,
4418                    e = {
4419                        display: "inline-block",
4420                        margin: "0px auto",
4421                        position: this.settings.position ? this.settings.position : "body" === this.settings.element ? "fixed" : "absolute",
4422                        transition: "all .5s ease-in-out",
4423                        zIndex: this.settings.z_index
4424                    },
4425                    s = !1,
4426                    n = this.settings;
4427                switch (c('[data-notify-position="' + this.settings.placement.from + "-" + this.settings.placement.align + '"]:not([data-closing="true"])').each(function() {
4428                    t = Math.max(t, parseInt(c(this).css(n.placement.from)) + parseInt(c(this).outerHeight()) + parseInt(n.spacing))
4429                }), !0 === this.settings.newest_on_top && (t = this.settings.offset.y), e[this.settings.placement.from] = t + "px", this.settings.placement.align) {
4430                    case "left":
4431                    case "right":
4432                        e[this.settings.placement.align] = this.settings.offset.x + "px";
4433                        break;
4434                    case "center":
4435                        e.left = 0, e.right = 0
4436                }
4437                this.$ele.css(e).addClass(this.settings.animate.enter), c.each(Array("webkit-", "moz-", "o-", "ms-", ""), function(t, e) {
4438                    i.$ele[0].style[e + "AnimationIterationCount"] = 1
4439                }), c(this.settings.element).append(this.$ele), !0 === this.settings.newest_on_top && (t = parseInt(t) + parseInt(this.settings.spacing) + this.$ele.outerHeight(), this.reposition(t)), c.isFunction(i.settings.onShow) && i.settings.onShow.call(this.$ele), this.$ele.one(this.animations.start, function() {
4440                    s = !0
4441                }).one(this.animations.end, function() {
4442                    i.$ele.removeClass(i.settings.animate.enter), c.isFunction(i.settings.onShown) && i.settings.onShown.call(this)
4443                }), setTimeout(function() {
4444                    s || c.isFunction(i.settings.onShown) && i.settings.onShown.call(this)
4445                }, 600)
4446            },
4447            bind: function() {
4448                var i = this;
4449                if (this.$ele.find('[data-notify="dismiss"]').on("click", function() {
4450                        i.close()
4451                    }), c.isFunction(i.settings.onClick) && this.$ele.on("click", function(t) {
4452                        t.target != i.$ele.find('[data-notify="dismiss"]')[0] && i.settings.onClick.call(this, t)
4453                    }), this.$ele.mouseover(function() {
4454                        c(this).data("data-hover", "true")
4455                    }).mouseout(function() {
4456                        c(this).data("data-hover", "false")
4457                    }), this.$ele.data("data-hover", "false"), 0 < this.settings.delay) {
4458                    i.$ele.data("notify-delay", i.settings.delay);
4459                    var s = setInterval(function() {
4460                        var t = parseInt(i.$ele.data("notify-delay")) - i.settings.timer;
4461                        if ("false" === i.$ele.data("data-hover") && "pause" === i.settings.mouse_over || "pause" != i.settings.mouse_over) {
4462                            var e = (i.settings.delay - t) / i.settings.delay * 100;
4463                            i.$ele.data("notify-delay", t), i.$ele.find('[data-notify="progressbar"] > div').attr("aria-valuenow", e).css("width", e + "%")
4464                        }
4465                        t <= -i.settings.timer && (clearInterval(s), i.close())
4466                    }, i.settings.timer)
4467                }
4468            },
4469            close: function() {
4470                var t = this,
4471                    e = parseInt(this.$ele.css(this.settings.placement.from)),
4472                    i = !1;
4473                this.$ele.attr("data-closing", "true").addClass(this.settings.animate.exit), t.reposition(e), c.isFunction(t.settings.onClose) && t.settings.onClose.call(this.$ele), this.$ele.one(this.animations.start, function() {
4474                    i = !0
4475                }).one(this.animations.end, function() {
4476                    c(this).remove(), c.isFunction(t.settings.onClosed) && t.settings.onClosed.call(this)
4477                }), setTimeout(function() {
4478                    i || (t.$ele.remove(), t.settings.onClosed && t.settings.onClosed(t.$ele))
4479                }, 600)
4480            },
4481            reposition: function(t) {
4482                var e = this,
4483                    i = '[data-notify-position="' + this.settings.placement.from + "-" + this.settings.placement.align + '"]:not([data-closing="true"])',
4484                    s = this.$ele.nextAll(i);
4485                !0 === this.settings.newest_on_top && (s = this.$ele.prevAll(i)), s.each(function() {
4486                    c(this).css(e.settings.placement.from, t), t = parseInt(t) + parseInt(e.settings.spacing) + c(this).outerHeight()
4487                })
4488            }
4489        }), c.notify = function(t, e) {
4490            return new i(this, t, e).notify
4491        }, c.notifyDefaults = function(t) {
4492            return n = c.extend(!0, {}, n, t)
4493        }, c.notifyClose = function(t) {
4494            void 0 === t || "all" === t ? c("[data-notify]").find('[data-notify="dismiss"]').trigger("click") : "success" === t || "info" === t || "warning" === t || "danger" === t ? c(".alert-" + t + "[data-notify]").find('[data-notify="dismiss"]').trigger("click") : t ? c(t + "[data-notify]").find('[data-notify="dismiss"]').trigger("click") : c('[data-notify-position="' + t + '"]').find('[data-notify="dismiss"]').trigger("click")
4495        }, c.notifyCloseExcept = function(t) {
4496            "success" === t || "info" === t || "warning" === t || "danger" === t ? c("[data-notify]").not(".alert-" + t).find('[data-notify="dismiss"]').trigger("click") : c("[data-notify]").not(t).find('[data-notify="dismiss"]').trigger("click")
4497        }
4498    }),
4499    function(x) {
4500        function n() {
4501            return !!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)
4502        }
4503
4504        function e() {
4505            I && M[I.id].fx && !M[I.id].fxmobile && (x(window).width() < 480 ? I.element.removeClass("picker-fxs") : I.element.addClass("picker-fxs"))
4506        }
4507
4508        function l() {
4509            var t = P($()),
4510                e = P(k());
4511            if (M[I.id].lock) {
4512                if ("from" == M[I.id].lock) return t < e ? (W(), I.element.addClass("picker-lkd"), !0) : (I.element.removeClass("picker-lkd"), !1);
4513                if ("to" == M[I.id].lock) return e < t ? (W(), I.element.addClass("picker-lkd"), !0) : (I.element.removeClass("picker-lkd"), !1)
4514            }
4515            return M[I.id].disabledays && (-1 != M[I.id].disabledays.indexOf(t) ? (W(), I.element.addClass("picker-lkd"), !0) : (I.element.removeClass("picker-lkd"), !1))
4516        }
4517
4518        function C(t) {
4519            return t % 1 == 0
4520        }
4521
4522        function T(t) {
4523            return /(^\d{1,4}[\.|\\/|-]\d{1,2}[\.|\\/|-]\d{1,4})(\s*(?:0?[1-9]:[0-5]|1(?=[012])\d:[0-5])\d\s*[ap]m)?$/.test(t)
4524        }
4525
4526        function h(t) {
4527            return parseInt(M[I.id].key[t].current)
4528        }
4529
4530        function c(t) {
4531            return parseInt(M[I.id].key[t].today)
4532        }
4533
4534        function r(t, e) {
4535            for (var i = [], s = M[I.id].key[t], n = s.min; n <= s.max; n++) n % e == 0 && i.push(n);
4536            return i
4537        }
4538
4539        function E() {
4540            return S[M[I.id].lang].gregorian ? [1, 2, 3, 4, 5, 6, 0] : [0, 1, 2, 3, 4, 5, 6]
4541        }
4542
4543        function a(t) {
4544            return N('ul.pick[data-k="' + t + '"]')
4545        }
4546
4547        function d(t, e) {
4548            ul = a(t);
4549            var i = [];
4550            return ul.find("li").each(function() {
4551                i.push(x(this).attr("value"))
4552            }), "last" == e ? i[i.length - 1] : i[0]
4553        }
4554
4555        function t() {
4556            M[I.id].large && (I.element.toggleClass("picker-lg"), H())
4557        }
4558
4559        function s() {
4560            N("ul.pick.pick-l").toggleClass("visible")
4561        }
4562
4563        function u() {
4564            if (!I.element.hasClass("picker-modal")) {
4565                var t = I.input,
4566                    e = t.offset().left + t.outerWidth() / 2,
4567                    i = t.offset().top + t.outerHeight();
4568                I.element.css({
4569                    left: e,
4570                    top: i
4571                })
4572            }
4573        }
4574
4575        function p() {
4576            l() || (I.element.removeClass("picker-focus"), I.element.hasClass("picker-modal") && x(".picker-modal-overlay").addClass("tohide"), I = null), A = !1
4577        }
4578
4579        function D(t) {
4580            var e = a(t),
4581                s = M[I.id].key[t];
4582            for (M[I.id].key[t].current = s.today < s.min && s.min || s.today, i = s.min; i <= s.max; i++) {
4583                var n = i;
4584                "m" == t && (n = S[M[I.id].lang].months.short[i - 1]), "l" == t && (n = S[Object.keys(S)[i]].name), n += "d" == t ? "<span></span>" : "", x("<li>", {
4585                    value: i,
4586                    html: n
4587                }).appendTo(e)
4588            }
4589            x("<div>", {
4590                class: "pick-arw pick-arw-s1 pick-arw-l",
4591                html: x("<i>", {
4592                    class: "pick-i-l"
4593                })
4594            }).appendTo(e), x("<div>", {
4595                class: "pick-arw pick-arw-s1 pick-arw-r",
4596                html: x("<i>", {
4597                    class: "pick-i-r"
4598                })
4599            }).appendTo(e), "y" == t && (x("<div>", {
4600                class: "pick-arw pick-arw-s2 pick-arw-l",
4601                html: x("<i>", {
4602                    class: "pick-i-l"
4603                })
4604            }).appendTo(e), x("<div>", {
4605                class: "pick-arw pick-arw-s2 pick-arw-r",
4606                html: x("<i>", {
4607                    class: "pick-i-r"
4608                })
4609            }).appendTo(e)), L(t, h(t))
4610        }
4611
4612        function f(t, e) {
4613            var i = M[I.id].key[t];
4614            e > i.max && ("d" == t && z("m", "right"), "m" == t && z("y", "right"), e = i.min), e < i.min && ("d" == t && z("m", "left"), "m" == t && z("y", "left"), e = i.max), M[I.id].key[t].current = e, L(t, e)
4615        }
4616
4617        function m(t) {
4618            return t < 10 ? "0" + t : t
4619        }
4620        var g = "transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd",
4621            _ = "webkitAnimationEnd mozAnimationEnd oAnimationEnd oanimationend animationend",
4622            S = {
4623                en: {
4624                    name: "English",
4625                    gregorian: !1,
4626                    months: {
4627                        short: ["Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"],
4628                        full: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "
4628November", "December"]
4629                    },
4630                    weekdays: {
4631                        short: ["S", "M", "T", "W", "T", "F", "S"],
4632                        full: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
4633                    }
4634                },
4635                ka: {
4636                    name: "Georgian",
4637                    gregorian: !1,
4638                    months: {
4639                        short: ["იან", "თებ", "მარტ", "აპრ", "მაი", "ივნ", "ივლ", "აგვ", "სექტ", "ოქტ", "ნოემბ", "დეკ"],
4640                        full: ["იანვარი", "თებერვალი", "მარტი", "აპრილი", "მაისი", "ივნისი", "ივლისი", "აგვისტო", "სექტემბერი", "ოქტომბერი", "ნოემბერი", "დეკემბერი"]
4641                    },
4642                    weekdays: {
4643                        short: ["კვ", "ორ", "სამ", "ოთხ", "ხუთ", "პარ", "შაბ"],
4644                        full: ["კვირა", "ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი"]
4645                    }
4646                },
4647                it: {
4648                    name: "Italiano",
4649                    gregorian: !0,
4650                    months: {
4651                        short: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"],
4652                        full: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"]
4653                    },
4654                    weekdays: {
4655                        short: ["D", "L", "M", "M", "G", "V", "S"],
4656                        full: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"]
4657                    }
4658                },
4659                fr: {
4660                    name: "Français",
4661                    gregorian: !0,
4662                    months: {
4663                        short: ["Jan", "Fév", "Mar", "Avr", "Mai", "Jui", "Jui", "Aoû", "Sep", "Oct", "Nov", "Déc"],
4664                        full: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"]
4665                    },
4666                    weekdays: {
4667                        short: ["D", "L", "M", "M", "J", "V", "S"],
4668                        full: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"]
4669                    }
4670                },
4671                zh: {
4672                    name: "中文",
4673                    gregorian: !0,
4674                    months: {
4675                        short: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
4676                        full: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"]
4677                    },
4678                    weekdays: {
4679                        short: ["天", "一", "二", "三", "四", "五", "六"],
4680                        full: ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
4681                    }
4682                },
4683                ar: {
4684                    name: "العَرَبِيَّة",
4685                    gregorian: !1,
4686                    months: {
4687                        short: ["جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"],
4688                        full: ["جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"]
4689                    },
4690                    weekdays: {
4691                        short: ["S", "M", "T", "W", "T", "F", "S"],
4692                        full: ["الأحد", "الإثنين", "الثلثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"]
4693                    }
4694                },
4695                fa: {
4696                    name: "فارسی",
4697                    gregorian: !1,
4698                    months: {
4699                        short: ["ژانویه", "فووریه", "مارچ", "آپریل", "می", "جون", "جولای", "آگوست", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"],
4700                        full: ["ژانویه", "فووریه", "مارچ", "آپریل", "می", "جون", "جولای", "آگوست", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"]
4701                    },
4702                    weekdays: {
4703                        short: ["S", "M", "T", "W", "T", "F", "S"],
4704                        full: ["یکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنج شنبه", "جمعه", "شنبه"]
4705                    }
4706                },
4707                hu: {
4708                    name: "Hungarian",
4709                    gregorian: !0,
4710                    months: {
4711                        short: ["jan", "feb", "már", "ápr", "máj", "jún", "júl", "aug", "sze", "okt", "nov", "dec"],
4712                        full: ["január", "február", "március", "április", "május", "június", "július", "augusztus", "szeptember", "október", "november", "december"]
4713                    },
4714                    weekdays: {
4715                        short: ["v", "h", "k", "s", "c", "p", "s"],
4716                        full: ["vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"]
4717                    }
4718                },
4719                gr: {
4720                    name: "Ελληνικά",
4721                    gregorian: !0,
4722                    months: {
4723                        short: ["Ιαν", "Φεβ", "Μάρ", "Απρ", "Μάι", "Ιούν", "Ιούλ", "Αύγ", "Σεπ", "Οκτ", "Νοέ", "Δεκ"],
4724                        full: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"]
4725                    },
4726                    weekdays: {
4727                        short: ["Κ", "Δ", "Τ", "Τ", "Π", "Π", "Σ"],
4728                        full: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"]
4729                    }
4730                },
4731                es: {
4732                    name: "Español",
4733                    gregorian: !0,
4734                    months: {
4735                        short: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
4736                        full: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"]
4737                    },
4738                    weekdays: {
4739                        short: ["D", "L", "M", "X", "J", "V", "S"],
4740                        full: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"]
4741                    }
4742                },
4743                da: {
4744                    name: "Dansk",
4745                    gregorian: !0,
4746                    months: {
4747                        short: ["jan", "feb", "mar", "apr", "maj", "jun", "jul", "aug", "sep", "okt", "nov", "dec"],
4748                        full: ["januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "oktober", "november", "december"]
4749                    },
4750                    weekdays: {
4751                        short: ["s", "m", "t", "o", "t", "f", "l"],
4752                        full: ["søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"]
4753                    }
4754                },
4755                de: {
4756                    name: "Deutsch",
4757                    gregorian: !0,
4758                    months: {
4759                        short: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
4760                        full: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]
4761                    },
4762                    weekdays: {
4763                        short: ["S", "M", "D", "M", "D", "F", "S"],
4764                        full: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
4765                    }
4766                },
4767                nl: {
4768                    name: "Nederlands",
4769                    gregorian: !0,
4770                    months: {
4771                        short: ["jan", "feb", "maa", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"],
4772                        full: ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"]
4773                    },
4774                    weekdays: {
4775                        short: ["z", "m", "d", "w", "d", "v", "z"],
4776                        full: ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"]
4777                    }
4778                },
4779                pl: {
4780                    name: "język polski",
4781                    gregorian: !0,
4782                    months: {
4783                        short: ["sty", "lut", "mar", "kwi", "maj", "cze", "lip", "sie", "wrz", "paź", "lis", "gru"],
4784                        full: ["styczeń", "luty", "marzec", "kwiecieÅ
4784„", "maj", "czerwiec", "lipiec", "sierpień", "wrzesień", "październik", "listopad", "grudzień"]
4785                    },
4786                    weekdays: {
4787                        short: ["n", "p", "w", "ś", "c", "p", "s"],
4788                        full: ["niedziela", "poniedziałek", "wtorek", "środa", "czwartek", "piątek", "sobota"]
4789                    }
4790                },
4791                pt: {
4792                    name: "Português",
4793                    gregorian: !0,
4794                    months: {
4795                        short: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
4796                        full: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"]
4797                    },
4798                    weekdays: {
4799                        short: ["D", "S", "T", "Q", "Q", "S", "S"],
4800                        full: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"]
4801                    }
4802                },
4803                si: {
4804                    name: "Slovenščina",
4805                    gregorian: !0,
4806                    months: {
4807                        short: ["jan", "feb", "mar", "apr", "maj", "jun", "jul", "avg", "sep", "okt", "nov", "dec"],
4808                        full: ["januar", "februar", "marec", "april", "maj", "junij", "julij", "avgust", "september", "oktober", "november", "december"]
4809                    },
4810                    weekdays: {
4811                        short: ["n", "p", "t", "s", "č", "p", "s"],
4812                        full: ["nedelja", "ponedeljek", "torek", "sreda", "četrtek", "petek", "sobota"]
4813                    }
4814                },
4815                uk: {
4816                    name: "українська мова",
4817                    gregorian: !0,
4818                    months: {
4819                        short: ["січень", "лютий", "березень", "квітень", "травень", "червень", "липень", "серпень", "вересень", "жовтень", "листопад", "грудень"],
4820                        full: ["січень", "лютий", "березень", "квітень", "травень", "червень", "липень", "серпень", "вересень", "жовтень", "листопад", "грудень"]
4821                    },
4822                    weekdays: {
4823                        short: ["н", "п", "в", "с", "ч", "п", "с"],
4824                        full: ["неділя", "понеділок", "вівторок", "середа", "четвер", "п'ятниця", "субота"]
4825                    }
4826                },
4827                ru: {
4828                    name: "русский язык",
4829                    gregorian: !0,
4830                    months: {
4831                        short: ["январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"],
4832                        full: ["январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"]
4833                    },
4834                    weekdays: {
4835                        short: ["в", "п", "в", "с", "ч", "п", "с"],
4836                        full: ["воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"]
4837                    }
4838                },
4839                tr: {
4840                    name: "Türkçe",
4841                    gregorian: !0,
4842                    months: {
4843                        short: ["Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"],
4844                        full: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"]
4845                    },
4846                    weekdays: {
4847                        short: ["P", "P", "S", "Ç", "P", "C", "C"],
4848                        full: ["Pazar", "Pazartesi", "Sali", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"]
4849                    }
4850                },
4851                ko: {
4852                    name: "조선말",
4853                    gregorian: !0,
4854                    months: {
4855                        short: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
4856                        full: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"]
4857                    },
4858                    weekdays: {
4859                        short: ["일", "월", "화", "수", "목", "금", "토"],
4860                        full: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"]
4861                    }
4862                },
4863                fi: {
4864                    name: "suomen kieli",
4865                    gregorian: !0,
4866                    months: {
4867                        short: ["Tam", "Hel", "Maa", "Huh", "Tou", "Kes", "Hei", "Elo", "Syy", "Lok", "Mar", "Jou"],
4868                        full: ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu", "Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"]
4869                    },
4870                    weekdays: {
4871                        short: ["S", "M", "T", "K", "T", "P", "L"],
4872                        full: ["Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"]
4873                    }
4874                },
4875                vi: {
4876                    name: "Tiếng việt",
4877                    gregorian: !1,
4878                    months: {
4879                        short: ["Th.01", "Th.02", "Th.03", "Th.04", "Th.05", "Th.06", "Th.07", "Th.08", "Th.09", "Th.10", "Th.11", "Th.12"],
4880                        full: ["Tháng 01", "Tháng 02", "Tháng 03", "Tháng 04", "Tháng 05", "Tháng 06", "Tháng 07", "Tháng 08", "Tháng 09", "Tháng 10", "Tháng 11", "Tháng 12"]
4881                    },
4882                    weekdays: {
4883                        short: ["CN", "T2", "T3", "T4", "T5", "T6", "T7"],
4884                        full: ["Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy"]
4885                    }
4886                }
4887            },
4888            M = {},
4889            I = null,
4890            A = !1,
4891            v = null,
4892            y = null,
4893            w = null,
4894            b = !1,
4895            k = function() {
4896                return c("m") + "/" + c("d") + "/" + c("y")
4897            },
4898            $ = function() {
4899                return h("m") + "/" + h("d") + "/" + h("y")
4900            },
4901            O = function(t, e) {
4902                var i = M[I.id].key[t];
4903                return e > i.max ? O(t, e - i.max + (i.min - 1)) : e < i.min ? O(t, e + 1 + (i.max - i.min)) : e
4904            },
4905            N = function(t) {
4906                if (I) return I.element.find(t)
4907            },
4908            P = function(t) {
4909                return Date.parse(t) / 1e3
4910            },
4911            F = function() {
4912                var e = E();
4913                N(".pick-lg .pick-lg-h li").each(function(t) {
4914                    x(this).html(S[M[I.id].lang].weekdays.short[e[t]])
4915                }), N("ul.pick.pick-m li").each(function() {
4916                    x(this).html(S[M[I.id].lang].months.short[x(this).attr("value") - 1])
4917                })
4918            },
4919            H = function() {
4920                var t = 0,
4921                    e = N(".pick-lg-b");
4922                e.find("li").empty().removeClass("pick-n pick-b pick-a pick-v pick-lk pick-sl pick-h").attr("data-value", "");
4923                new Date($());
4924
4925                function i(t) {
4926                    var e = t.getMonth(),
4927                        i = t.getFullYear();
4928                    return [31, i % 4 == 0 && (i % 100 != 0 || i % 400 == 0) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][e]
4929                }
4930                var s = new Date($()),
4931                    n = new Date($());
4932                n.setMonth(n.getMonth() - 1), s.setDate(1);
4933                var o = s.getDay() - 1;
4934                o < 0 && (o = 6), S[M[I.id].lang].gregorian && --o < 0 && (o = 6);
4935                for (var r = i(n) - o; r <= i(n); r++) e.find("li").eq(t).html(r).addClass("pick-b pick-n pick-h"), t++;
4936                for (r = 1; r <= i(s); r++) e.find("li").eq(t).html(r).addClass("pick-n pick-v").attr("data-value", r), t++;
4937                if (e.find("li.pick-n").length < 42) {
4938                    var a = 42 - e.find("li.pick-n").length;
4939                    for (r = 1; r <= a; r++) e.find("li").eq(t).html(r).addClass("pick-a pick-n pick-h"), t++
4940                }
4941                M[I.id].lock && ("from" === M[I.id].lock ? h("y") <= c("y") && (h("m") == c("m") ? N('.pick-lg .pick-lg-b li.pick-v[data-value="' + c("d") + '"]').prevAll("li").addClass("pick-lk") : h("m") < c("m") ? N(".pick-lg .pick-lg-b li").addClass("pick-lk") : h("m") > c("m") && h("y") < c("y") && N(".pick-lg .pick-lg-b li").addClass("pick-lk")) : h("y") >= c("y") && (h("m") == c("m") ? N('.pick-lg .pick-lg-b li.pick-v[data-value="' + c("d") + '"]').nextAll("li").addClass("pick-lk") : h("m") > c("m") ? N(".pick-lg .pick-lg-b li").addClass("pick-lk") : h("m") < c("m") && h("y") > c("y") && N(".pick-lg .pick-lg-b li").addClass("pick-lk"))), M[I.id].disabledays && x.each(M[I.id].disabledays, function(t, e) {
4942                    if (e && T(e)) {
4943                        var i = new Date(1e3 * e);
4944                        i.getMonth() + 1 == h("m") && i.getFullYear() == h("y") && N('.pick-lg .pick-lg-b li.pick-v[data-value="' + i.getDate() + '"]').addClass("pick-lk")
4945                    }
4946                }), N(".pick-lg-b li.pick-v[data-value=" + h("d") + "]").addClass("pick-sl")
4947            },
4948            j = function() {
4949                var e, i, t;
4950                I.element.hasClass("picker-lg") && H(), e = h("m"), i = h("y"), t = i % 4 == 0 && (i % 100 != 0 || i % 400 == 0), M[I.id].key.d.max = [31, t ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][e - 1], h("d") > M[I.id].key.d.max && (M[I.id].key.d.current = M[I.id].key.d.max, L("d", h("d"))), N(".pick-d li").removeClass("pick-wke").each(function() {
4951                    var t = new Date(e + "/" + x(this).attr("value") + "/" + i).getDay();
4952                    x(this).find("span").html(S[M[I.id].lang].weekdays.full[t]), 0 != t && 6 != t || x(this).addClass("pick-wke")
4953                }), I.element.hasClass("picker-lg") && (N(".pick-lg-b li").removeClass("pick-wke"), N(".pick-lg-b li.pick-v").each(function() {
4954                    var t = new Date(e + "/" + x(this).attr("data-value") + "/" + i).getDay();
4955                    0 != t && 6 != t || x(this).addClass("pick-wke")
4956                })), U()
4957            },
4958            L = function(t, e) {
4959                var i, s = a(t);
4960                s.find("li").removeClass("pick-sl pick-bfr pick-afr"), e == d(t, "last") && ((i = s.find('li[value="' + d(t, "first") + '"]')).clone().insertAfter(s.find("li[value=" + e + "]")), i.remove());
4961                e == d(t, "first") && ((i = s.find('li[value="' + d(t, "last") + '"]')).clone().insertBefore(s.find("li[value=" + e + "]")), i.remove());
4962                s.find("li[value=" + e + "]").addClass("pick-sl"), s.find("li.pick-sl").nextAll("li").addClass("pick-afr"), s.find("li.pick-sl").prevAll("li").addClass("pick-bfr")
4963            },
4964            z = function(t, e) {
4965                var i = h(t);
4966                "right" == e ? i++ : i--, f(t, i)
4967            },
4968            W = function() {
4969                I.element.addClass("picker-rmbl")
4970            },
4971            U = function() {
4972                if (!l() && A) {
4973                    var t = h("d"),
4974                        e = h("m"),
4975                        i = h("y"),
4976                        s = new Date(e + "/" + t + "/" + i).getDay(),
4977                        n = M[I.id].format.replace(/\b(d)\b/g, m(t)).replace(/\b(m)\b/g, m(e)).replace(/\b(S)\b/g, (o = t) + ((r = ["th", "st", "nd", "rd"])[((a = o % 100) - 20) % 10] || r[a] || r[0])).replace(/\b(Y)\b/g, i).replace(/\b(U)\b/g, P($())).replace(/\b(D)\b/g, S[M[I.id].lang].weekdays.short[s]).replace(/\b(l)\b/g, S[M[I.id].lang].weekdays.full[s]).replace(/\b(F)\b/g, S[M[I.id].lang].months.full[e - 1]).replace(/\b(M)\b/g, S[M[I.id].lang].months.short[e - 1]).replace(/\b(n)\b/g, e).replace(/\b(j)\b/g, t);
4978                    I.input.val(n).change(), A = !1
4979                }
4980                var o, r, a
4981            };
4982        if (n()) var R = {
4983            i: "touchstart",
4984            m: "touchmove",
4985            e: "touchend"
4986        };
4987        else R = {
4988            i: "mousedown",
4989            m: "mousemove",
4990            e: "mouseup"
4991        };
4992        var B = "div.datedropper.picker-focus";
4993        x(document).on("click", function(t) {
4994            I && (I.input.is(t.target) || I.element.is(t.target) || 0 !== I.element.has(t.target).length || (p(), v = null))
4995        }).on(_, B + ".picker-rmbl", function() {
4996            I.element.hasClass("picker-rmbl") && x(this).removeClass("picker-rmbl")
4997        }).on(g, ".picker-modal-overlay", function() {
4998            x(this).remove()
4999        }).on(R.i, B + " .pick-lg li.pick-v", function() {
5000            N(".pick-lg-b li").removeClass("pick-sl"), x(this).addClass("pick-sl"), M[I.id].key.d.current = x(this).attr("data-value"), L("d", x(this).attr("data-value")), A = !0
5001        }).on("click", B + " .pick-btn-sz", function() {
5002            t()
5003        }).on("click", B + " .pick-btn-lng", function() {
5004            s()
5005        }).on(R.i, B + " .pick-arw.pick-arw-s2", function(t) {
5006            t.preventDefault(), v = null;
5007            x(this).closest("ul").data("k");
5008            var e, i = M[I.id].jump;
5009            e = x(this).hasClass("pick-arw-r") ? h("y") + i : h("y") - i;
5010            var s = r("y", i);
5011            e > s[s.length - 1] && (e = s[0]), e < s[0] && (e = s[s.length - 1]), M[I.id].key.y.current = e, L("y", h("y")), A = !0
5012        }).on(R.i, B + " .pick-arw.pick-arw-s1", function(t) {
5013            t.preventDefault(), v = null;
5014            var e = x(this).closest("ul").data("k");
5015            x(this).hasClass("pick-arw-r") ? z(e, "right") : z(e, "left"), A = !0
5016        }).on(R.i, B + " ul.pick.pick-y li", function() {
5017            b = !0
5018        }).on(R.e, B + " ul.pick.pick-y li", function() {
5019            if (b && !(M[I.id].jump >= M[I.id].key.y.max - M[I.id].key.y.min)) {
5020                x(this).closest("ul").toggleClass("pick-jump");
5021                var t = function(t, e) {
5022                    for (var i = e[0], s = Math.abs(t - i), n = 0; n < e.length; n++) {
5023                        var o = Math.abs(t - e[n]);
5024                        o < s && (s = o, i = e[n])
5025                    }
5026                    return i
5027                }(h("y"), r("y", M[I.id].jump));
5028                M[I.id].key.y.current = t, L("y", h("y")), b = !1
5029            }
5030        }).on(R.i, B + " ul.pick.pick-d li", function() {
5031            b = !0
5032        }).on(R.e, B + " ul.pick.pick-d li", function() {
5033            b && (t(), b = !1)
5034        }).on(R.i, B + " ul.pick.pick-l li", function() {
5035            b = !0
5036        }).on(R.e, B + " ul.pick.pick-l li", function() {
5037            var t;
5038            b && (s(), t = x(this).val(), M[I.id].lang = Object.keys(S)[t], F(), j(), b = !1)
5039        }).on(R.i, B + " ul.pick", function(t) {
5040            if (v = x(this)) {
5041                var e = v.data("k");
5042                y = n() ? t.originalEvent.touches[0].pageY : t.pageY, w = h(e)
5043            }
5044        }).on(R.m, function(t) {
5045            if (b = !1, v) {
5046                t.preventDefault();
5047                var e = v.data("k");
5048                o = n() ? t.originalEvent.touches[0].pageY : t.pageY, o = y - o, o = Math.round(.026 * o), i = w + o;
5049                var s = O(e, i);
5050                s != M[I.id].key[e].current && f(e, s), A = !0
5051            }
5052        }).on(R.e, function(t) {
5053            v && (w = y = v = null), I && j()
5054        }).on(R.i, B + " .pick-submit", function() {
5055            p()
5056        }), x(window).resize(function() {
5057            I && (u(), e())
5058        }), x.fn.dateDropper = function(t) {
5059            return x(this).each(function() {
5060                if (x(this).is("input") && !x(this).hasClass("picker-input")) {
5061                    var t = x(this),
5062                        e = "datedropper-" + Object.keys(M).length;
5063                    t.attr("data-id", e).addClass("picker-input").prop({
5064                        type: "text",
5065                        readonly: !0
5066                    });
5067                    var i = t.data("default-date") && T(t.data("default-date")) ? t.data("default-date") : null,
5068                        s = t.data("disabled-days") ? t.data("disabled-days").split(",") : null,
5069                        n = t.data("format") || "m/d/Y",
5070                        o = !1 !== t.data("fx") || t.data("fx"),
5071                        r = !1 === t.data("fx") ? "" : "picker-fxs",
5072                        a = !1 !== t.data("fx-mobile") || t.data("fx-mobile"),
5073                        l = !1 !== t.data("init-set"),
5074                        h = t.data("lang") && t.data("lang") in S ? t.data("lang") : "en",
5075                        c = !0 === t.data("large-mode"),
5076                        d = !0 === t.data("large-default") && !0 == c ? "picker-lg" : "",
5077                        u = ("from" == t.data("lock") || "to" == t.data("lock")) && t.data("lock"),
5078                        p = t.data("jump") && C(t.data("jump")) ? t.data("jump") : 10,
5079                        f = t.data("max-year") && C(t.data("max-year")) ? t.data("max-year") : (new Date).getFullYear(),
5080                        m = t.data("min-year") && C(t.data("min-year")) ? t.data("min-year") : 1970,
5081                        g = !0 === t.data("modal") ? "picker-modal" : "",
5082                        _ = t.data("theme") || "primary",
5083                        v = !0 === t.data("translate-mode");
5084                    if (s && x.each(s, function(t, e) {
5085                            e && T(e) && (s[t] = P(e))
5086                        }), M[e] = {
5087                            disabledays: s,
5088                            format: n,
5089                            fx: o,
5090                            fxmobile: a,
5091                            lang: h,
5092                            large: c,
5093                            lock: u,
5094                            jump: p,
5095                            key: {
5096                                m: {
5097                                    min: 1,
5098                                    max: 12,
5099                                    current: 1,
5100                                    today: (new Date).getMonth() + 1
5101                                },
5102                                d: {
5103                                    min: 1,
5104                                    max: 31,
5105                                    current: 1,
5106                                    today: (new Date).getDate()
5107                                },
5108                                y: {
5109                                    min: m,
5110                                    max: f,
5111                                    current: m,
5112                                    today: (new Date).getFullYear()
5113                                },
5114                                l: {
5115                                    min: 0,
5116                                    max: Object.keys(S).length - 1,
5117                                    current: 0,
5118                                    today: 0
5119                                }
5120                            },
5121                            translate: v
5122                        }, i) {
5123                        var y = i.match(/\d+/g);
5124                        x.each(y, function(t, e) {
5125                            y[t] = parseInt(e)
5126                        }), M[e].key.m.today = y[0] && y[0] <= 12 ? y[0] : M[e].key.m.today, M[e].key.d.today = y[1] && y[1] <= 31 ? y[1] : M[e].key.d.today, M[e].key.y.today = y[2] ? y[2] : M[e].key.y.today, M[e].key.y.today > M[e].key.y.max && (M[e].key.y.max = M[e].key.y.today), M[e].key.y.today < M[e].key.y.min && (M[e].key.y.min = M[e].key.y.today)
5127                    }
5128                    for (var w in x("<div>", {
5129                            class: "datedropper " + g + " " + _ + " " + r + " " + d,
5130                            id: e,
5131                            html: x("<div>", {
5132                                class: "picker"
5133                            })
5134                        }).appendTo("body"), I = {
5135                            id: e,
5136                            input: t,
5137                            element: x("#" + e)
5138                        }, M[e].key) x("<ul>", {
5139                        class: "pick pick-" + w,
5140                        "data-k": w
5141                    }).appendTo(N(".picker")), D(w);
5142                    if (M[e].large) {
5143                        x("<div>", {
5144                            class: "pick-lg"
5145                        }).insertBefore(N(".pick-d")), x('<ul class="pick-lg-h"></ul><ul class="pick-lg-b"></ul>').appendTo(N(".pick-lg"));
5146                        for (var b = E(), k = 0; k < 7; k++) x("<li>", {
5147                            html: S[M[I.id].lang].weekdays.short[b[k]]
5148                        }).appendTo(N(".pick-lg .pick-lg-h"));
5149                        for (k = 0; k < 42; k++) x("<li>").appendTo(N(".pick-lg .pick-lg-b"))
5150                    }
5151                    x("<div>", {
5152                        class: "pick-btns"
5153                    }).appendTo(N(".picker")), x("<div>", {
5154                        class: "pick-submit"
5155                    }).appendTo(N(".pick-btns")), M[I.id].translate && x("<div>", {
5156                        class: "pick-btn pick-btn-lng"
5157                    }).appendTo(N(".pick-btns")), M[I.id].large && x("<div>", {
5158                        class: "pick-btn pick-btn-sz"
5159                    }).appendTo(N(".pick-btns")), "Y" != n && "m" != n || (N(".pick-d,.pick-btn-sz").hide(), I.element.addClass("picker-tiny"), "Y" == n && N(".pick-m,.pick-btn-lng").hide(), "m" == n && N(".pick-y").hide()), l && (A = !0, U()), I = null
5160                }
5161            }).focus(function(t) {
5162                t.preventDefault(), x(this).blur(), I && p(), I = {
5163                    id: x(this).data("id"),
5164                    input: x(this),
5165                    element: x("#" + x(this).data("id"))
5166                }, e(), u(), j(), I.element.addClass("picker-focus"), I.element.hasClass("picker-modal") && x("body").append('<div class="picker-modal-overlay"></div>')
5167            })
5168        }
5169    }(jQuery),
5170    function(b) {
5171        b.fn.timeDropper = function(n, t) {
5172            return b(this).each(function() {
5173                function c(t) {
5174                    return t < 10 ? "0" + t : t
5175                }
5176                var h, d = b(this),
5177                    u = !1,
5178                    p = !1,
5179                    t = b(".td-clock").length,
5180                    e = null,
5181                    f = b.extend({
5182                        format: "h:mm a",
5183                        autoswitch: !1,
5184                        meridians: !1,
5185                        mousewheel: !1,
5186                        setCurrentTime: !0,
5187                        init_animation: "fadein",
5188                        primaryColor: "#1977CC",
5189                        borderColor: "#1977CC",
5190                        backgroundColor: "#FFF",
5191                        textColor: "#555"
5192                    }, n);
5193                d.prop({
5194                    readonly: !0
5195                }).addClass("td-input"), b("body").append('<div class="td-wrap td-n2" id="td-clock-' + t + '"><div class="td-overlay"></div><div class="td-clock td-init"><div class="td-deg td-n"><div class="td-select"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 100 35.4" enable-background="new 0 0 100 35.4" xml:space="preserve"><g><path fill="none" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M98.1,33C85.4,21.5,68.5,14.5,50,
519514.5S14.6,21.5,1.9,33"/><line fill="none" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="1.9" y1="33" x2="1.9" y2="28.6"/><line fill="none" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="1.9" y1="33" x2="6.3" y2="33"/><line fill="none" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="98.1" y1="33" x2="93.7" y2="33"/><line fill="none" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="98.1" y1="33" x2="98.1" y2="28.6"/></g></svg></div></div><div class="td-medirian"><span class="td-icon-am td-n">AM</span><span class="td-icon-pm td-n">PM</span></div><div class="td-lancette"><div></div><div></div></div><div class="td-time"><span class="on"></span>:<span></span></div></div></div>'), b("head").append("<style>#td-clock-" + t + " .td-clock {color:" + f.textColor + ";background: " + f.backgroundColor + "; box-shadow: 0 0 0 1px " + f.borderColor + ",0 0 0 8px rgba(0, 0, 0, 0.05); } #td-clock-" + t + " .td-clock .td-time span.on { color:" + f.primaryColor + "} #td-clock-" + t + " .td-clock:before { border-color: " + f.borderColor + "} #td-clock-" + t + " .td-select:after { box-shadow: 0 0 0 1px " + f.borderColor + " } #td-clock-" + t + " .td-clock:before,#td-clock-" + t + " .td-select:after {background: " + f.backgroundColor + ";} #td-clock-" + t + " .td-lancette {border: 2px solid " + f.primaryColor + "; opacity:0.1}#td-clock-" + t + " .td-lancette div:after { background: " + f.primaryColor + ";} #td-clock-" + t + " .td-bulletpoint div:after { background:" + f.primaryColor + "; opacity:0.1}</style>");
5196                var i = b("#td-clock-" + t),
5197                    s = i.find(".td-overlay"),
5198                    m = i.find(".td-clock");
5199                m.find("svg").attr("style", "stroke:" + f.borderColor);
5200
5201                function g() {
5202                    var t = m.find(".td-time span.on"),
5203                        e = parseInt(t.attr("data-id"));
5204                    deg = 0 == t.index() ? Math.round(360 * e / 23) : Math.round(360 * e / 59), v = -1, y = deg, w = deg
5205                }
5206
5207                function _(t) {
5208                    var e = m.find(".td-time span.on");
5209                    e.attr("data-id");
5210                    var i = Math.round(23 * t / 360),
5211                        s = Math.round(59 * t / 360);
5212                    if (0 == e.index() ? (e.attr("data-id", c(i)), f.meridians && (12 <= i && i < 24 ? (m.find(".td-icon-pm").addClass("td-on"), m.find(".td-icon-am").removeClass("td-on")) : (m.find(".td-icon-am").addClass("td-on"), m.find(".td-icon-pm").removeClass("td-on")), 12 < i && (i -= 12), 0 == i && (i = 12)), e.text(c(i))) : e.attr("data-id", c(s)).text(c(s)), w = t, m.find(".td-deg").css("transform", "rotate(" + t + "deg)"), 0 == e.index()) {
5213                        var n = Math.round(360 * i / 12);
5214                        m.find(".td-lancette div:last").css("transform", "rotate(" + n + "deg)")
5215                    } else m.find(".td-lancette div:first").css("transform", "rotate(" + t + "deg)");
5216                    var o = m.find(".td-time span:first").attr("data-id"),
5217                        r = m.find(".td-time span:last").attr("data-id");
5218                    if (12 <= Math.round(o) && Math.round(o) < 24) {
5219                        i = Math.round(o) - 12;
5220                        var a = "pm",
5221                            l = "PM"
5222                    } else i = Math.round(o), a = "am", l = "AM";
5223                    0 == i && (i = 12);
5224                    var h = f.format.replace(/\b(H)\b/g, Math.round(o)).replace(/\b(h)\b/g, Math.round(i)).replace(/\b(m)\b/g, Math.round(r)).replace(/\b(HH)\b/g, c(Math.round(o))).replace(/\b(hh)\b/g, c(Math.round(i))).replace(/\b(mm)\b/g, c(Math.round(r))).replace(/\b(a)\b/g, a).replace(/\b(A)\b/g, l);
5225                    d.val(h)
5226                }
5227                var v = -1,
5228                    y = 0,
5229                    w = 0;
5230                /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && (p = !0), m.find(".td-time span").on("click", function(t) {
5231                    var e = b(this);
5232                    m.find(".td-time span").removeClass("on"), e.addClass("on");
5233                    var i = parseInt(e.attr("data-id"));
5234                    deg = 0 == e.index() ? Math.round(360 * i / 23) : Math.round(360 * i / 59), v = -1, y = deg, w = deg, _(deg)
5235                }), m.find(".td-deg").on("touchstart mousedown", function(t) {
5236                    g(), t.preventDefault(), clearInterval(h), m.find(".td-deg").removeClass("td-n"), m.find(".td-select").removeClass("td-rubber"), u = !0;
5237                    var e, i, s, n, o = m.offset(),
5238                        r = o.top + m.height() / 2,
5239                        a = o.left + m.width() / 2,
5240                        l = 180 / Math.PI;
5241                    m.removeClass("td-rubber"), b(window).on("touchmove mousemove", function(t) {
5242                        1 == u && (move = p ? t.originalEvent.touches[0] : t, e = r - move.pageY, i = a - move.pageX, (s = Math.atan2(e, i) * l) < 0 && (s = 360 + s), -1 == v && (v = s), (n = Math.floor(s - v + y)) < 0 ? n = 360 + n : 360 < n && (n %= 360), _(n))
5243                    })
5244                }), f.mousewheel && m.on("mousewheel", function(t) {
5245                    t.preventDefault(), m.find(".td-deg").removeClass("td-n"), 0 < t.originalEvent.wheelDelta ? w <= 360 && (t.originalEvent.wheelDelta <= 120 ? w++ : 120 < t.originalEvent.wheelDelta && (w += 20), 360 < w && (w = 0)) : 0 <= w && (-120 <= t.originalEvent.wheelDelta ? w-- : t.originalEvent.wheelDelta < -120 && (w -= 20), w < 0 && (w = 360)), v = -1, _(y = w)
5246                }), b(document).on("touchend mouseup", function() {
5247                    u && (u = !1, f.autoswitch && (m.find(".td-time span").toggleClass("on"), m.find(".td-time span.on").click()), m.find(".td-deg").addClass("td-n"), m.find(".td-select").addClass("td-rubber"))
5248                });
5249                ! function() {
5250                    var t, e, i = new Date,
5251                        s = m.find(".td-time span:first"),
5252                        n = m.find(".td-time span:last");
5253                    if (d.val().length && !f.setCurrentTime) {
5254                        var o = /\d+/g,
5255                            r = d.val().split(":");
5256                        r ? (t = r[0].match(o), e = r[1].match(o), -1 != d.val().indexOf("am") || -1 != d.val().indexOf("AM") || -1 != d.val().indexOf("pm") || -1 != d.val().indexOf("PM") ? -1 != d.val().indexOf("am") || -1 != d.val().indexOf("AM") ? 12 == t && (t = 0) : t < 13 && 24 == (t = parseInt(t) + 12) && (t = 0) : 24 == t && (t = 0)) : (t = parseInt(s.text()) ? c(s.text()) : c(i.getHours()), e = parseInt(n.text()) ? c(n.text()) : c(i.getMinutes()))
5257                    } else t = parseInt(s.text()) ? c(s.text()) : c(i.getHours()), e = parseInt(n.text()) ? c(n.text()) : c(i.getMinutes());
5258                    s.attr("data-id", t).text(t), n.attr("data-id", e).text(e), y = Math.round(360 * t / 23), m.find(".td-lancette div:first").css("transform", "rotate(" + Math.round(360 * e / 59) + "deg)"), _(y), w = y, v = -1
5259                }(), d.focus(function(t) {
5260                    t.preventDefault(), d.blur()
5261                }), d.click(function(t) {
5262                    clearInterval(e), i.removeClass("td-fadeout"), i.addClass("td-show").addClass("td-" + f.init_animation), m.css({
5263                        top: d.offset().top + (d.outerHeight() - 8),
5264                        left: d.offset().left + d.outerWidth() / 2 - m.outerWidth() / 2
5265                    }), m.hasClass("td-init") && (h = setInterval(function() {
5266                        m.find(".td-select").addClass("td-alert"), setTimeout(function() {
5267                            m.find(".td-select").removeClass("td-alert")
5268                        }, 1e3)
5269                    }, 2e3), m.removeClass("td-init"))
5270                }), s.click(function() {
5271                    i.addClass("td-fadeout").removeClass("td-" + f.init_animation), e = setTimeout(function() {
5272                        i.removeClass("td-show")
5273                    }, 300)
5274                }), b(window).on("resize", function() {
5275                    g(), m.css({
5276                        top: d.offset().top + (d.outerHeight() - 8),
5277                        left: d.offset().left + d.outerWidth() / 2 - m.outerWidth() / 2
5278                    })
5279                })
5280            })
5281        }
5282    }(jQuery),
5283    function(l, i, n, a) {
5284        function h(t, e) {
5285            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 = {
5286                time: null,
5287                target: null,
5288                pointer: null,
5289                stage: {
5290                    start: null,
5291                    current: null
5292                },
5293                direction: null
5294            }, this._states = {
5295                current: {},
5296                tags: {
5297                    initializing: ["busy"],
5298                    animating: ["busy"],
5299                    dragging: ["interacting"]
5300                }
5301            }, l.each(["onResize", "onThrottledResize"], l.proxy(function(t, e) {
5302                this._handlers[e] = l.proxy(this[e], this)
5303            }, this)), l.each(h.Plugins, l.proxy(function(t, e) {
5304                this._plugins[t.charAt(0).toLowerCase() + t.slice(1)] = new e(this)
5305            }, this)), l.each(h.Workers, l.proxy(function(t, e) {
5306                this._pipe.push({
5307                    filter: e.filter,
5308                    run: l.proxy(e.run, this)
5309                })
5310            }, this)), this.setup(), this.initialize()
5311        }
5312        h.Defaults = {
5313            items: 3,
5314            loop: !1,
5315            center: !1,
5316            rewind: !1,
5317            checkVisibility: !0,
5318            mouseDrag: !0,
5319            touchDrag: !0,
5320            pullDrag: !0,
5321            freeDrag: !1,
5322            margin: 0,
5323            stagePadding: 0,
5324            merge: !1,
5325            mergeFit: !0,
5326            autoWidth: !1,
5327            startPosition: 0,
5328            rtl: !1,
5329            smartSpeed: 250,
5330            fluidSpeed: !1,
5331            dragEndSpeed: !1,
5332            responsive: {},
5333            responsiveRefreshRate: 200,
5334            responsiveBaseElement: i,
5335            fallbackEasing: "swing",
5336            slideTransition: "",
5337            info: !1,
5338            nestedItemSelector: !1,
5339            itemElement: "div",
5340            stageElement: "div",
5341            refreshClass: "owl-refresh",
5342            loadedClass: "owl-loaded",
5343            loadingClass: "owl-loading",
5344            rtlClass: "owl-rtl",
5345            responsiveClass: "owl-responsive",
5346            dragClass: "owl-drag",
5347            itemClass: "owl-item",
5348            stageClass: "owl-stage",
5349            stageOuterClass: "owl-stage-outer",
5350            grabClass: "owl-grab"
5351        }, h.Width = {
5352            Default: "default",
5353            Inner: "inner",
5354            Outer: "outer"
5355        }, h.Type = {
5356            Event: "event",
5357            State: "state"
5358        }, h.Plugins = {}, h.Workers = [{
5359            filter: ["width", "settings"],
5360            run: function() {
5361                this._width = this.$element.width()
5362            }
5363        }, {
5364            filter: ["width", "items", "settings"],
5365            run: function(t) {
5366                t.current = this._items && this._items[this.relative(this._current)]
5367            }
5368        }, {
5369            filter: ["items", "settings"],
5370            run: function() {
5371                this.$stage.children(".cloned").remove()
5372            }
5373        }, {
5374            filter: ["width", "items", "settings"],
5375            run: function(t) {
5376                var e = this.settings.margin || "",
5377                    i = !this.settings.autoWidth,
5378                    s = this.settings.rtl,
5379                    n = {
5380                        width: "auto",
5381                        "margin-left": s ? e : "",
5382                        "margin-right": s ? "" : e
5383                    };
5384                i || this.$stage.children().css(n), t.css = n
5385            }
5386        }, {
5387            filter: ["width", "items", "settings"],
5388            run: function(t) {
5389                var e = (this.width() / this.settings.items).toFixed(3) - this.settings.margin,
5390                    i = null,
5391                    s = this._items.length,
5392                    n = !this.settings.autoWidth,
5393                    o = [];
5394                for (t.items = {
5395                        merge: !1,
5396                        width: e
5397                    }; s--;) i = this._mergers[s], i = this.settings.mergeFit && Math.min(i, this.settings.items) || i, t.items.merge = 1 < i || t.items.merge, o[s] = n ? e * i : this._items[s].width();
5398                this._widths = o
5399            }
5400        }, {
5401            filter: ["items", "settings"],
5402            run: function() {
5403                var t = [],
5404                    e = this._items,
5405                    i = this.settings,
5406                    s = Math.max(2 * i.items, 4),
5407                    n = 2 * Math.ceil(e.length / 2),
5408                    o = i.loop && e.length ? i.rewind ? s : Math.max(s, n) : 0,
5409                    r = "",
5410                    a = "";
5411                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;
5412                this._clones = t, l(r).addClass("cloned").appendTo(this.$stage), l(a).addClass("cloned").prependTo(this.$stage)
5413            }
5414        }, {
5415            filter: ["width", "items", "settings"],
5416            run: function() {
5417                for (var t = this.settings.rtl ? 1 : -1, e = this._clones.length + this._items.length, i = -1, s = 0, n = 0, o = []; ++i < e;) s = o[i - 1] || 0, n = this._widths[this.relative(i)] + this.settings.margin, o.push(s + n * t);
5418                this._coordinates = o
5419            }
5420        }, {
5421            filter: ["width", "items", "settings"],
5422            run: function() {
5423                var t = this.settings.stagePadding,
5424                    e = this._coordinates,
5425                    i = {
5426                        width: Math.ceil(Math.abs(e[e.length - 1])) + 2 * t,
5427                        "padding-left": t || "",
5428                        "padding-right": t || ""
5429                    };
5430                this.$stage.css(i)
5431            }
5432        }, {
5433            filter: ["width", "items", "settings"],
5434            run: function(t) {
5435                var e = this._coordinates.length,
5436                    i = !this.settings.autoWidth,
5437                    s = this.$stage.children();
5438                if (i && t.items.merge)
5439                    for (; e--;) t.css.width = this._widths[this.relative(e)], s.eq(e).css(t.css);
5440                else i && (t.css.width = t.items.width, s.css(t.css))
5441            }
5442        }, {
5443            filter: ["items"],
5444            run: function() {
5445                this._coordinates.length < 1 && this.$stage.removeAttr("style")
5446            }
5447        }, {
5448            filter: ["width", "items", "settings"],
5449            run: function(t) {
5450                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)
5451            }
5452        }, {
5453            filter: ["position"],
5454            run: function() {
5455                this.animate(this.coordinates(this._current))
5456            }
5457        }, {
5458            filter: ["width", "position", "items", "settings"],
5459            run: function() {
5460                var t, e, i, s, n = this.settings.rtl ? 1 : -1,
5461                    o = 2 * this.settings.stagePadding,
5462                    r = this.coordinates(this.current()) + o,
5463                    a = r + this.width() * n,
5464                    l = [];
5465                for (i = 0, s = this._coordinates.length; i < s; i++) t = this._coordinates[i - 1] || 0, e = Math.abs(this._coordinat
vendor: 34,605 bytes, lines 5465-5971
5465es[i]) + o * n, (this.op(t, "<=", r) && this.op(t, ">", a) || this.op(e, "<", r) && this.op(e, ">", a)) && l.push(i);
5466                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")
5467            }
5468        }], h.prototype.initializeStage = function() {
5469            this.$stage = this.$element.find("." + this.settings.stageClass), this.$stage.length || (this.$element.addClass(this.options.loadingClass), this.$stage = l("<" + this.settings.stageElement + ">", {
5470                class: this.settings.stageClass
5471            }).wrap(l("<div/>", {
5472                class: this.settings.stageOuterClass
5473            })), this.$element.append(this.$stage.parent()))
5474        }, h.prototype.initializeItems = function() {
5475            var t = this.$element.find(".owl-item");
5476            if (t.length) return this._items = t.get().map(function(t) {
5477                return l(t)
5478            }), this._mergers = this._items.map(function() {
5479                return 1
5480            }), void this.refresh();
5481            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)
5482        }, h.prototype.initialize = function() {
5483            var t, e, i;
5484            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));
5485            this.initializeStage(), this.initializeItems(), this.registerEventHandlers(), this.leave("initializing"), this.trigger("initialized")
5486        }, h.prototype.isVisible = function() {
5487            return !this.settings.checkVisibility || this.$element.is(":visible")
5488        }, h.prototype.setup = function() {
5489            var e = this.viewport(),
5490                t = this.options.responsive,
5491                i = -1,
5492                s = null;
5493            t ? (l.each(t, function(t) {
5494                t <= e && i < t && (i = Number(t))
5495            }), "function" == typeof(s = l.extend({}, this.options, t[i])).stagePadding && (s.stagePadding = s.stagePadding()), delete s.responsive, s.responsiveClass && this.$element.attr("class", this.$element.attr("class").replace(new RegExp("(" + this.options.responsiveClass + "-)\\S+\\s", "g"), "$1" + i))) : s = l.extend({}, this.options), this.trigger("change", {
5496                property: {
5497                    name: "settings",
5498                    value: s
5499                }
5500            }), this._breakpoint = i, this.settings = s, this.invalidate("settings"), this.trigger("changed", {
5501                property: {
5502                    name: "settings",
5503                    value: this.settings
5504                }
5505            })
5506        }, h.prototype.optionsLogic = function() {
5507            this.settings.autoWidth && (this.settings.stagePadding = !1, this.settings.merge = !1)
5508        }, h.prototype.prepare = function(t) {
5509            var e = this.trigger("prepare", {
5510                content: t
5511            });
5512            return e.data || (e.data = l("<" + this.settings.itemElement + "/>").addClass(this.options.itemClass).append(t)), this.trigger("prepared", {
5513                content: e.data
5514            }), e.data
5515        }, h.prototype.update = function() {
5516            for (var t = 0, e = this._pipe.length, i = l.proxy(function(t) {
5517                    return this[t]
5518                }, this._invalidated), s = {}; t < e;)(this._invalidated.all || 0 < l.grep(this._pipe[t].filter, i).length) && this._pipe[t].run(s), t++;
5519            this._invalidated = {}, this.is("valid") || this.enter("valid")
5520        }, h.prototype.width = function(t) {
5521            switch (t = t || h.Width.Default) {
5522                case h.Width.Inner:
5523                case h.Width.Outer:
5524                    return this._width;
5525                default:
5526                    return this._width - 2 * this.settings.stagePadding + this.settings.margin
5527            }
5528        }, h.prototype.refresh = function() {
5529            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")
5530        }, h.prototype.onThrottledResize = function() {
5531            i.clearTimeout(this.resizeTimer), this.resizeTimer = i.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate)
5532        }, h.prototype.onResize = function() {
5533            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")))))
5534        }, h.prototype.registerEventHandlers = function() {
5535            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() {
5536                return !1
5537            })), 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)))
5538        }, h.prototype.onDragStart = function(t) {
5539            var e = null;
5540            3 !== t.which && (e = l.support.transform ? {
5541                x: (e = this.$stage.css("transform").replace(/.*\(|\)| /g, "").split(","))[16 === e.length ? 12 : 4],
5542                y: e[16 === e.length ? 13 : 5]
5543            } : (e = this.$stage.position(), {
5544                x: this.settings.rtl ? e.left + this.$stage.width() - this.width() + this.settings.margin : e.left,
5545                y: e.top
5546            }), 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(n).on("mouseup.owl.core touchend.owl.core", l.proxy(this.onDragEnd, this)), l(n).one("mousemove.owl.core touchmove.owl.core", l.proxy(function(t) {
5547                var e = this.difference(this._drag.pointer, this.pointer(t));
5548                l(n).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"))
5549            }, this)))
5550        }, h.prototype.onDragMove = function(t) {
5551            var e = null,
5552                i = null,
5553                s = null,
5554                n = this.difference(this._drag.pointer, this.pointer(t)),
5555                o = this.difference(this._drag.stage.start, n);
5556            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()), s = this.settings.pullDrag ? -1 * n.x / 5 : 0, o.x = Math.max(Math.min(o.x, e + s), i + s)), this._drag.stage.current = o, this.animate(o.x))
5557        }, h.prototype.onDragEnd = function(t) {
5558            var e = this.difference(this._drag.pointer, this.pointer(t)),
5559                i = this._drag.stage.current,
5560                s = 0 < e.x ^ this.settings.rtl ? "left" : "right";
5561            l(n).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 ? s : this._drag.direction)), this.invalidate("position"), this.update(), this._drag.direction = s, (3 < Math.abs(e.x) || 300 < (new Date).getTime() - this._drag.time) && this._drag.target.one("click.owl.core", function() {
5562                return !1
5563            })), this.is("dragging") && (this.leave("dragging"), this.trigger("dragged"))
5564        }, h.prototype.closest = function(i, s) {
5565            var n = -1,
5566                o = this.width(),
5567                r = this.coordinates();
5568            return this.settings.freeDrag || l.each(r, l.proxy(function(t, e) {
5569                return "left" === s && e - 30 < i && i < e + 30 ? n = t : "right" === s && e - o - 30 < i && i < e - o + 30 ? n = t + 1 : this.op(i, "<", e) && this.op(i, ">", r[t + 1] !== a ? r[t + 1] : e - o) && (n = "left" === s ? t + 1 : t), -1 === n
5570            }, this)), this.settings.loop || (this.op(i, ">", r[this.minimum()]) ? n = i = this.minimum() : this.op(i, "<", r[this.maximum()]) && (n = i = this.maximum())), n
5571        }, h.prototype.animate = function(t) {
5572            var e = 0 < this.speed();
5573            this.is("animating") && this.onTransitionEnd(), e && (this.enter("animating"), this.trigger("translate")), l.support.transform3d && l.support.transition ? this.$stage.css({
5574                transform: "translate3d(" + t + "px,0px,0px)",
5575                transition: this.speed() / 1e3 + "s" + (this.settings.slideTransition ? " " + this.settings.slideTransition : "")
5576            }) : e ? this.$stage.animate({
5577                left: t + "px"
5578            }, this.speed(), this.settings.fallbackEasing, l.proxy(this.onTransitionEnd, this)) : this.$stage.css({
5579                left: t + "px"
5580            })
5581        }, h.prototype.is = function(t) {
5582            return this._states.current[t] && 0 < this._states.current[t]
5583        }, h.prototype.current = function(t) {
5584            if (t === a) return this._current;
5585            if (0 === this._items.length) return a;
5586            if (t = this.normalize(t), this._current !== t) {
5587                var e = this.trigger("change", {
5588                    property: {
5589                        name: "position",
5590                        value: t
5591                    }
5592                });
5593                e.data !== a && (t = this.normalize(e.data)), this._current = t, this.invalidate("position"), this.trigger("changed", {
5594                    property: {
5595                        name: "position",
5596                        value: this._current
5597                    }
5598                })
5599            }
5600            return this._current
5601        }, h.prototype.invalidate = function(t) {
5602            return "string" === l.type(t) && (this._invalidated[t] = !0, this.is("valid") && this.leave("valid")), l.map(this._invalidated, function(t, e) {
5603                return e
5604            })
5605        }, h.prototype.reset = function(t) {
5606            (t = this.normalize(t)) !== a && (this._speed = 0, this._current = t, this.suppress(["translate", "translated"]), this.animate(this.coordinates(t)), this.release(["translate", "translated"]))
5607        }, h.prototype.normalize = function(t, e) {
5608            var i = this._items.length,
5609                s = e ? 0 : this._clones.length;
5610            return !this.isNumeric(t) || i < 1 ? t = a : (t < 0 || i + s <= t) && (t = ((t - s / 2) % i + i) % i + s / 2), t
5611        }, h.prototype.relative = function(t) {
5612            return t -= this._clones.length / 2, this.normalize(t, !0)
5613        }, h.prototype.maximum = function(t) {
5614            var e, i, s, n = this.settings,
5615                o = this._coordinates.length;
5616            if (n.loop) o = this._clones.length / 2 + this._items.length - 1;
5617            else if (n.autoWidth || n.merge) {
5618                if (e = this._items.length)
5619                    for (i = this._items[--e].width(), s = this.$element.width(); e-- && !(s < (i += this._items[e].width() + this.settings.margin)););
5620                o = e + 1
5621            } else o = n.center ? this._items.length - 1 : this._items.length - n.items;
5622            return t && (o -= this._clones.length / 2), Math.max(o, 0)
5623        }, h.prototype.minimum = function(t) {
5624            return t ? 0 : this._clones.length / 2
5625        }, h.prototype.items = function(t) {
5626            return t === a ? this._items.slice() : (t = this.normalize(t, !0), this._items[t])
5627        }, h.prototype.mergers = function(t) {
5628            return t === a ? this._mergers.slice() : (t = this.normalize(t, !0), this._mergers[t])
5629        }, h.prototype.clones = function(i) {
5630            function s(t) {
5631                return t % 2 == 0 ? n + t / 2 : e - (t + 1) / 2
5632            }
5633            var e = this._clones.length / 2,
5634                n = e + this._items.length;
5635            return i === a ? l.map(this._clones, function(t, e) {
5636                return s(e)
5637            }) : l.map(this._clones, function(t, e) {
5638                return t === i ? s(e) : null
5639            })
5640        }, h.prototype.speed = function(t) {
5641            return t !== a && (this._speed = t), this._speed
5642        }, h.prototype.coordinates = function(t) {
5643            var e, i = 1,
5644                s = t - 1;
5645            return t === a ? l.map(this._coordinates, l.proxy(function(t, e) {
5646                return this.coordinates(e)
5647            }, this)) : (this.settings.center ? (this.settings.rtl && (i = -1, s = t + 1), e = this._coordinates[t], e += (this.width() - e + (this._coordinates[s] || 0)) / 2 * i) : e = this._coordinates[s] || 0, e = Math.ceil(e))
5648        }, h.prototype.duration = function(t, e, i) {
5649            return 0 === i ? 0 : Math.min(Math.max(Math.abs(e - t), 1), 6) * Math.abs(i || this.settings.smartSpeed)
5650        }, h.prototype.to = function(t, e) {
5651            var i = this.current(),
5652                s = null,
5653                n = t - this.relative(i),
5654                o = (0 < n) - (n < 0),
5655                r = this._items.length,
5656                a = this.minimum(),
5657                l = this.maximum();
5658            this.settings.loop ? (!this.settings.rewind && Math.abs(n) > r / 2 && (n += -1 * o * r), (s = (((t = i + n) - a) % r + r) % r + a) !== t && s - n <= l && 0 < s - n && (i = s - n, t = s, 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()
5659        }, h.prototype.next = function(t) {
5660            t = t || !1, this.to(this.relative(this.current()) + 1, t)
5661        }, h.prototype.prev = function(t) {
5662            t = t || !1, this.to(this.relative(this.current()) - 1, t)
5663        }, h.prototype.onTransitionEnd = function(t) {
5664            if (t !== a && (t.stopPropagation(), (t.target || t.srcElement || t.originalTarget) !== this.$stage.get(0))) return !1;
5665            this.leave("animating"), this.trigger("translated")
5666        }, h.prototype.viewport = function() {
5667            var t;
5668            return this.options.responsiveBaseElement !== i ? t = l(this.options.responsiveBaseElement).width() : i.innerWidth ? t = i.innerWidth : n.documentElement && n.documentElement.clientWidth ? t = n.documentElement.clientWidth : console.warn("Can not detect viewport width."), t
5669        }, h.prototype.replace = function(t) {
5670            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() {
5671                return 1 === this.nodeType
5672            }).each(l.proxy(function(t, e) {
5673                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)
5674            }, this)), this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0), this.invalidate("items")
5675        }, h.prototype.add = function(t, e) {
5676            var i = this.relative(this._current);
5677            e = e === a ? this._items.length : this.normalize(e, !0), t = t instanceof jQuery ? t : l(t), this.trigger("add", {
5678                content: t,
5679                position: e
5680            }), 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", {
5681                content: t,
5682                position: e
5683            })
5684        }, h.prototype.remove = function(t) {
5685            (t = this.normalize(t, !0)) !== a && (this.trigger("remove", {
5686                content: this._items[t],
5687                position: t
5688            }), this._items[t].remove(), this._items.splice(t, 1), this._mergers.splice(t, 1), this.invalidate("items"), this.trigger("removed", {
5689                content: null,
5690                position: t
5691            }))
5692        }, h.prototype.preloadAutoWidthImages = function(t) {
5693            t.each(l.proxy(function(t, e) {
5694                this.enter("pre-loading"), e = l(e), l(new Image).one("load", l.proxy(function(t) {
5695                    e.attr("src", t.target.src), e.css("opacity", 1), this.leave("pre-loading"), this.is("pre-loading") || this.is("initializing") || this.refresh()
5696                }, this)).attr("src", e.attr("src") || e.attr("data-src") || e.attr("data-src-retina"))
5697            }, this))
5698        }, h.prototype.destroy = function() {
5699            for (var t in this.$element.off(".owl.core"), this.$stage.off(".owl.core"), l(n).off(".owl.core"), !1 !== this.settings.responsive && (i.clearTimeout(this.resizeTimer), this.off(i, "resize", this._handlers.onThrottledResize)), this._plugins) this._plugins[t].destroy();
5700            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")
5701        }, h.prototype.op = function(t, e, i) {
5702            var s = this.settings.rtl;
5703            switch (e) {
5704                case "<":
5705                    return s ? i < t : t < i;
5706                case ">":
5707                    return s ? t < i : i < t;
5708                case ">=":
5709                    return s ? t <= i : i <= t;
5710                case "<=":
5711                    return s ? i <= t : t <= i
5712            }
5713        }, h.prototype.on = function(t, e, i, s) {
5714            t.addEventListener ? t.addEventListener(e, i, s) : t.attachEvent && t.attachEvent("on" + e, i)
5715        }, h.prototype.off = function(t, e, i, s) {
5716            t.removeEventListener ? t.removeEventListener(e, i, s) : t.detachEvent && t.detachEvent("on" + e, i)
5717        }, h.prototype.trigger = function(t, e, i, s, n) {
5718            var o = {
5719                    item: {
5720                        count: this._items.length,
5721                        index: this.current()
5722                    }
5723                },
5724                r = l.camelCase(l.grep(["on", t, i], function(t) {
5725                    return t
5726                }).join("-").toLowerCase()),
5727                a = l.Event([t, "owl", i || "carousel"].join(".").toLowerCase(), l.extend({
5728                    relatedTarget: this
5729                }, o, e));
5730            return this._supress[t] || (l.each(this._plugins, function(t, e) {
5731                e.onTrigger && e.onTrigger(a)
5732            }), this.register({
5733                type: h.Type.Event,
5734                name: t
5735            }), this.$element.trigger(a), this.settings && "function" == typeof this.settings[r] && this.settings[r].call(this, a)), a
5736        }, h.prototype.enter = function(t) {
5737            l.each([t].concat(this._states.tags[t] || []), l.proxy(function(t, e) {
5738                this._states.current[e] === a && (this._states.current[e] = 0), this._states.current[e]++
5739            }, this))
5740        }, h.prototype.leave = function(t) {
5741            l.each([t].concat(this._states.tags[t] || []), l.proxy(function(t, e) {
5742                this._states.current[e]--
5743            }, this))
5744        }, h.prototype.register = function(i) {
5745            if (i.type === h.Type.Event) {
5746                if (l.event.special[i.name] || (l.event.special[i.name] = {}), !l.event.special[i.name].owl) {
5747                    var e = l.event.special[i.name]._default;
5748                    l.event.special[i.name]._default = function(t) {
5749                        return !e || !e.apply || t.namespace && -1 !== t.namespace.indexOf("owl") ? t.namespace && -1 < t.namespace.indexOf("owl") : e.apply(this, arguments)
5750                    }, l.event.special[i.name].owl = !0
5751                }
5752            } 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) {
5753                return l.inArray(t, this._states.tags[i.name]) === e
5754            }, this)))
5755        }, h.prototype.suppress = function(t) {
5756            l.each(t, l.proxy(function(t, e) {
5757                this._supress[e] = !0
5758            }, this))
5759        }, h.prototype.release = function(t) {
5760            l.each(t, l.proxy(function(t, e) {
5761                delete this._supress[e]
5762            }, this))
5763        }, h.prototype.pointer = function(t) {
5764            var e = {
5765                x: null,
5766                y: null
5767            };
5768            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
5769        }, h.prototype.isNumeric = function(t) {
5770            return !isNaN(parseFloat(t))
5771        }, h.prototype.difference = function(t, e) {
5772            return {
5773                x: t.x - e.x,
5774                y: t.y - e.y
5775            }
5776        }, l.fn.owlCarousel = function(e) {
5777            var s = Array.prototype.slice.call(arguments, 1);
5778            return this.each(function() {
5779                var t = l(this),
5780                    i = t.data("owl.carousel");
5781                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) {
5782                    i.register({
5783                        type: h.Type.Event,
5784                        name: e
5785                    }), i.$element.on(e + ".owl.carousel.core", l.proxy(function(t) {
5786                        t.namespace && t.relatedTarget !== this && (this.suppress([e]), i[e].apply(this, [].slice.call(arguments, 1)), this.release([e]))
5787                    }, i))
5788                })), "string" == typeof e && "_" !== e.charAt(0) && i[e].apply(i, s)
5789            })
5790        }, l.fn.owlCarousel.Constructor = h
5791    }(window.Zepto || window.jQuery, window, document),
5792    function(e, i) {
5793        var s = function(t) {
5794            this._core = t, this._interval = null, this._visible = null, this._handlers = {
5795                "initialized.owl.carousel": e.proxy(function(t) {
5796                    t.namespace && this._core.settings.autoRefresh && this.watch()
5797                }, this)
5798            }, this._core.options = e.extend({}, s.Defaults, this._core.options), this._core.$element.on(this._handlers)
5799        };
5800        s.Defaults = {
5801            autoRefresh: !0,
5802            autoRefreshInterval: 500
5803        }, s.prototype.watch = function() {
5804            this._interval || (this._visible = this._core.isVisible(), this._interval = i.setInterval(e.proxy(this.refresh, this), this._core.settings.autoRefreshInterval))
5805        }, s.prototype.refresh = function() {
5806            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())
5807        }, s.prototype.destroy = function() {
5808            var t, e;
5809            for (t in i.clearInterval(this._interval), this._handlers) this._core.$element.off(t, this._handlers[t]);
5810            for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null)
5811        }, e.fn.owlCarousel.Constructor.Plugins.AutoRefresh = s
5812    }(window.Zepto || window.jQuery, window, document),
5813    function(a, o) {
5814        var e = function(t) {
5815            this._core = t, this._loaded = [], this._handlers = {
5816                "initialized.owl.carousel change.owl.carousel resized.owl.carousel": a.proxy(function(t) {
5817                    if (t.namespace && this._core.settings && this._core.settings.lazyLoad && (t.property && "position" == t.property.name || "initialized" == t.type)) {
5818                        var e = this._core.settings,
5819                            i = e.center && Math.ceil(e.items / 2) || e.items,
5820                            s = e.center && -1 * i || 0,
5821                            n = (t.property && void 0 !== t.property.value ? t.property.value : this._core.current()) + s,
5822                            o = this._core.clones().length,
5823                            r = a.proxy(function(t, e) {
5824                                this.load(e)
5825                            }, this);
5826                        for (0 < e.lazyLoadEager && (i += e.lazyLoadEager, e.loop && (n -= e.lazyLoadEager, i++)); s++ < i;) this.load(o / 2 + this._core.relative(n)), o && a.each(this._core.clones(this._core.relative(n)), r), n++
5827                    }
5828                }, this)
5829            }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers)
5830        };
5831        e.Defaults = {
5832            lazyLoad: !1,
5833            lazyLoadEager: 0
5834        }, e.prototype.load = function(t) {
5835            var e = this._core.$stage.children().eq(t),
5836                i = e && e.find(".owl-lazy");
5837            !i || -1 < a.inArray(e.get(0), this._loaded) || (i.each(a.proxy(function(t, e) {
5838                var i, s = a(e),
5839                    n = 1 < o.devicePixelRatio && s.attr("data-src-retina") || s.attr("data-src") || s.attr("data-srcset");
5840                this._core.trigger("load", {
5841                    element: s,
5842                    url: n
5843                }, "lazy"), s.is("img") ? s.one("load.owl.lazy", a.proxy(function() {
5844                    s.css("opacity", 1), this._core.trigger("loaded", {
5845                        element: s,
5846                        url: n
5847                    }, "lazy")
5848                }, this)).attr("src", n) : s.is("source") ? s.one("load.owl.lazy", a.proxy(function() {
5849                    this._core.trigger("loaded", {
5850                        element: s,
5851                        url: n
5852                    }, "lazy")
5853                }, this)).attr("srcset", n) : ((i = new Image).onload = a.proxy(function() {
5854                    s.css({
5855                        "background-image": 'url("' + n + '")',
5856                        opacity: "1"
5857                    }), this._core.trigger("loaded", {
5858                        element: s,
5859                        url: n
5860                    }, "lazy")
5861                }, this), i.src = n)
5862            }, this)), this._loaded.push(e.get(0)))
5863        }, e.prototype.destroy = function() {
5864            var t, e;
5865            for (t in this.handlers) this._core.$element.off(t, this.handlers[t]);
5866            for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null)
5867        }, a.fn.owlCarousel.Constructor.Plugins.Lazy = e
5868    }(window.Zepto || window.jQuery, window, document),
5869    function(r, i) {
5870        var s = function(t) {
5871            this._core = t, this._previousHeight = null, this._handlers = {
5872                "initialized.owl.carousel refreshed.owl.carousel": r.proxy(function(t) {
5873                    t.namespace && this._core.settings.autoHeight && this.update()
5874                }, this),
5875                "changed.owl.carousel": r.proxy(function(t) {
5876                    t.namespace && this._core.settings.autoHeight && "position" === t.property.name && this.update()
5877                }, this),
5878                "loaded.owl.lazy": r.proxy(function(t) {
5879                    t.namespace && this._core.settings.autoHeight && t.element.closest("." + this._core.settings.itemClass).index() === this._core.current() && this.update()
5880                }, this)
5881            }, this._core.options = r.extend({}, s.Defaults, this._core.options), this._core.$element.on(this._handlers), this._intervalId = null;
5882            var e = this;
5883            r(i).on("load", function() {
5884                e._core.settings.autoHeight && e.update()
5885            }), r(i).resize(function() {
5886                e._core.settings.autoHeight && (null != e._intervalId && clearTimeout(e._intervalId), e._intervalId = setTimeout(function() {
5887                    e.update()
5888                }, 250))
5889            })
5890        };
5891        s.Defaults = {
5892            autoHeight: !1,
5893            autoHeightClass: "owl-height"
5894        }, s.prototype.update = function() {
5895            var t = this._core._current,
5896                e = t + this._core.settings.items,
5897                i = this._core.settings.lazyLoad,
5898                s = this._core.$stage.children().toArray().slice(t, e),
5899                n = [],
5900                o = 0;
5901            r.each(s, function(t, e) {
5902                n.push(r(e).height())
5903            }), (o = Math.max.apply(null, n)) <= 1 && i && this._previousHeight && (o = this._previousHeight), this._previousHeight = o, this._core.$stage.parent().height(o).addClass(this._core.settings.autoHeightClass)
5904        }, s.prototype.destroy = function() {
5905            var t, e;
5906            for (t in this._handlers) this._core.$element.off(t, this._handlers[t]);
5907            for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null)
5908        }, r.fn.owlCarousel.Constructor.Plugins.AutoHeight = s
5909    }(window.Zepto || window.jQuery, window, document),
5910    function(c, e) {
5911        var i = function(t) {
5912            this._core = t, this._videos = {}, this._playing = null, this._handlers = {
5913                "initialized.owl.carousel": c.proxy(function(t) {
5914                    t.namespace && this._core.register({
5915                        type: "state",
5916                        name: "playing",
5917                        tags: ["interacting"]
5918                    })
5919                }, this),
5920                "resize.owl.carousel": c.proxy(function(t) {
5921                    t.namespace && this._core.settings.video && this.isInFullScreen() && t.preventDefault()
5922                }, this),
5923                "refreshed.owl.carousel": c.proxy(function(t) {
5924                    t.namespace && this._core.is("resizing") && this._core.$stage.find(".cloned .owl-video-frame").remove()
5925                }, this),
5926                "changed.owl.carousel": c.proxy(function(t) {
5927                    t.namespace && "position" === t.property.name && this._playing && this.stop()
5928                }, this),
5929                "prepared.owl.carousel": c.proxy(function(t) {
5930                    if (t.namespace) {
5931                        var e = c(t.content).find(".owl-video");
5932                        e.length && (e.css("display", "none"), this.fetch(e, c(t.content)))
5933                    }
5934                }, this)
5935            }, 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) {
5936                this.play(t)
5937            }, this))
5938        };
5939        i.Defaults = {
5940            video: !1,
5941            videoHeight: !1,
5942            videoWidth: !1
5943        }, i.prototype.fetch = function(t, e) {
5944            var i = t.attr("data-vimeo-id") ? "vimeo" : t.attr("data-vzaar-id") ? "vzaar" : "youtube",
5945                s = t.attr("data-vimeo-id") || t.attr("data-youtube-id") || t.attr("data-vzaar-id"),
5946                n = t.attr("data-width") || this._core.settings.videoWidth,
5947                o = t.attr("data-height") || this._core.settings.videoHeight,
5948                r = t.attr("href");
5949            if (!r) throw new Error("Missing video URL.");
5950            if (-1 < (s = 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";
5951            else if (-1 < s[3].indexOf("vimeo")) i = "vimeo";
5952            else {
5953                if (!(-1 < s[3].indexOf("vzaar"))) throw new Error("Video URL not supported.");
5954                i = "vzaar"
5955            }
5956            s = s[6], this._videos[r] = {
5957                type: i,
5958                id: s,
5959                width: n,
5960                height: o
5961            }, e.attr("data-video", r), this.thumbnail(t, this._videos[r])
5962        }, i.prototype.thumbnail = function(e, t) {
5963            function i(t) {
5964                s = h.lazyLoad ? c("<div/>", {
5965                    class: "owl-video-tn " + l,
5966                    srcType: t
5967                }) : c("<div/>", {
5968                    class: "owl-video-tn",
5969                    style: "opacity:1;background-image:url(" + t + ")"
5970                }), e.after(s), e.after('<div class="owl-video-play-icon"></div>')
5971            }
vendor: 7,801 bytes, lines 5972-6089
5972            var s, n, o = t.width && t.height ? "width:" + t.width + "px;height:" + t.height + "px;" : "",
5973                r = e.find("img"),
5974                a = "src",
5975                l = "",
5976                h = this._core.settings;
5977            if (e.wrap(c("<div/>", {
5978                    class: "owl-video-wrapper",
5979                    style: o
5980                })), this._core.settings.lazyLoad && (a = "data-src", l = "owl-lazy"), r.length) return i(r.attr(a)), r.remove(), !1;
5981            "youtube" === t.type ? (n = "//img.youtube.com/vi/" + t.id + "/hqdefault.jpg", i(n)) : "vimeo" === t.type ? c.ajax({
5982                type: "GET",
5983                url: "//vimeo.com/api/v2/video/" + t.id + ".json",
5984                jsonp: "callback",
5985                dataType: "jsonp",
5986                success: function(t) {
5987                    n = t[0].thumbnail_large, i(n)
5988                }
5989            }) : "vzaar" === t.type && c.ajax({
5990                type: "GET",
5991                url: "//vzaar.com/api/videos/" + t.id + ".json",
5992                jsonp: "callback",
5993                dataType: "jsonp",
5994                success: function(t) {
5995                    n = t.framegrab_url, i(n)
5996                }
5997            })
5998        }, i.prototype.stop = function() {
5999            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")
6000        }, i.prototype.play = function(t) {
6001            var e, i = c(t.target).closest("." + this._core.settings.itemClass),
6002                s = this._videos[i.attr("data-video")],
6003                n = s.width || "100%",
6004                o = s.height || this._core.$stage.height();
6005            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", n), "youtube" === s.type ? e.attr("src", "//www.youtube.com/embed/" + s.id + "?autoplay=1&rel=0&v=" + s.id) : "vimeo" === s.type ? e.attr("src", "//player.vimeo.com/video/" + s.id + "?autoplay=1") : "vzaar" === s.type && e.attr("src", "//view.vzaar.com/" + s.id + "/player?autoplay=true"), c(e).wrap('<div class="owl-video-frame" />').insertAfter(i.find(".owl-video")), this._playing = i.addClass("owl-video-playing"))
6006        }, i.prototype.isInFullScreen = function() {
6007            var t = e.fullscreenElement || e.mozFullScreenElement || e.webkitFullscreenElement;
6008            return t && c(t).parent().hasClass("owl-video-frame")
6009        }, i.prototype.destroy = function() {
6010            var t, e;
6011            for (t in this._core.$element.off("click.owl.video"), this._handlers) this._core.$element.off(t, this._handlers[t]);
6012            for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null)
6013        }, c.fn.owlCarousel.Constructor.Plugins.Video = i
6014    }(window.Zepto || window.jQuery, (window, document)),
6015    function(r) {
6016        var e = function(t) {
6017            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 = {
6018                "change.owl.carousel": r.proxy(function(t) {
6019                    t.namespace && "position" == t.property.name && (this.previous = this.core.current(), this.next = t.property.value)
6020                }, this),
6021                "drag.owl.carousel dragged.owl.carousel translated.owl.carousel": r.proxy(function(t) {
6022                    t.namespace && (this.swapping = "translated" == t.type)
6023                }, this),
6024                "translate.owl.carousel": r.proxy(function(t) {
6025                    t.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn) && this.swap()
6026                }, this)
6027            }, this.core.$element.on(this.handlers)
6028        };
6029        e.Defaults = {
6030            animateOut: !1,
6031            animateIn: !1
6032        }, e.prototype.swap = function() {
6033            if (1 === this.core.settings.items && r.support.animation && r.support.transition) {
6034                this.core.speed(0);
6035                var t, e = r.proxy(this.clear, this),
6036                    i = this.core.$stage.children().eq(this.previous),
6037                    s = this.core.$stage.children().eq(this.next),
6038                    n = this.core.settings.animateIn,
6039                    o = this.core.settings.animateOut;
6040                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({
6041                    left: t + "px"
6042                }).addClass("animated owl-animated-out").addClass(o)), n && s.one(r.support.animation.end, e).addClass("animated owl-animated-in").addClass(n))
6043            }
6044        }, e.prototype.clear = function(t) {
6045            r(t.target).css({
6046                left: ""
6047            }).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut), this.core.onTransitionEnd()
6048        }, e.prototype.destroy = function() {
6049            var t, e;
6050            for (t in this.handlers) this.core.$element.off(t, this.handlers[t]);
6051            for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null)
6052        }, r.fn.owlCarousel.Constructor.Plugins.Animate = e
6053    }(window.Zepto || window.jQuery, (window, document)),
6054    function(s, n, e) {
6055        var i = function(t) {
6056            this._core = t, this._call = null, this._time = 0, this._timeout = 0, this._paused = !0, this._handlers = {
6057                "changed.owl.carousel": s.proxy(function(t) {
6058                    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)
6059                }, this),
6060                "initialized.owl.carousel": s.proxy(function(t) {
6061                    t.namespace && this._core.settings.autoplay && this.play()
6062                }, this),
6063                "play.owl.autoplay": s.proxy(function(t, e, i) {
6064                    t.namespace && this.play(e, i)
6065                }, this),
6066                "stop.owl.autoplay": s.proxy(function(t) {
6067                    t.namespace && this.stop()
6068                }, this),
6069                "mouseover.owl.autoplay": s.proxy(function() {
6070                    this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause()
6071                }, this),
6072                "mouseleave.owl.autoplay": s.proxy(function() {
6073                    this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.play()
6074                }, this),
6075                "touchstart.owl.core": s.proxy(function() {
6076                    this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause()
6077                }, this),
6078                "touchend.owl.core": s.proxy(function() {
6079                    this._core.settings.autoplayHoverPause && this.play()
6080                }, this)
6081            }, this._core.$element.on(this._handlers), this._core.options = s.extend({}, i.Defaults, this._core.options)
6082        };
6083        i.Defaults = {
6084            autoplay: !1,
6085            autoplayTimeout: 5e3,
6086            autoplayHoverPause: !1,
6087            autoplaySpeed: !1
6088        }, i.prototype._next = function(t) {
6089            this._call = n.setTimeout(s.proxy(this._next, this, t), this._timeout * (Math.round(this.read() / this._timeout) + 1) 
vendor: 8,730 bytes, lines 6089-6202
6089- this.read()), this._core.is("interacting") || e.hidden || this._core.next(t || this._core.settings.autoplaySpeed)
6090        }, i.prototype.read = function() {
6091            return (new Date).getTime() - this._time
6092        }, i.prototype.play = function(t, e) {
6093            var i;
6094            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) : n.clearTimeout(this._call), this._time += this.read() % t - i, this._timeout = t, this._call = n.setTimeout(s.proxy(this._next, this, e), t - i)
6095        }, i.prototype.stop = function() {
6096            this._core.is("rotating") && (this._time = 0, this._paused = !0, n.clearTimeout(this._call), this._core.leave("rotating"))
6097        }, i.prototype.pause = function() {
6098            this._core.is("rotating") && !this._paused && (this._time = this.read(), this._paused = !0, n.clearTimeout(this._call))
6099        }, i.prototype.destroy = function() {
6100            var t, e;
6101            for (t in this.stop(), this._handlers) this._core.$element.off(t, this._handlers[t]);
6102            for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null)
6103        }, s.fn.owlCarousel.Constructor.Plugins.autoplay = i
6104    }(window.Zepto || window.jQuery, window, document),
6105    function(o) {
6106        "use strict";
6107        var e = function(t) {
6108            this._core = t, this._initialized = !1, this._pages = [], this._controls = {}, this._templates = [], this.$element = this._core.$element, this._overrides = {
6109                next: this._core.next,
6110                prev: this._core.prev,
6111                to: this._core.to
6112            }, this._handlers = {
6113                "prepared.owl.carousel": o.proxy(function(t) {
6114                    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>")
6115                }, this),
6116                "added.owl.carousel": o.proxy(function(t) {
6117                    t.namespace && this._core.settings.dotsData && this._templates.splice(t.position, 0, this._templates.pop())
6118                }, this),
6119                "remove.owl.carousel": o.proxy(function(t) {
6120                    t.namespace && this._core.settings.dotsData && this._templates.splice(t.position, 1)
6121                }, this),
6122                "changed.owl.carousel": o.proxy(function(t) {
6123                    t.namespace && "position" == t.property.name && this.draw()
6124                }, this),
6125                "initialized.owl.carousel": o.proxy(function(t) {
6126                    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"))
6127                }, this),
6128                "refreshed.owl.carousel": o.proxy(function(t) {
6129                    t.namespace && this._initialized && (this._core.trigger("refresh", null, "navigation"), this.update(), this.draw(), this._core.trigger("refreshed", null, "navigation"))
6130                }, this)
6131            }, this._core.options = o.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers)
6132        };
6133        e.Defaults = {
6134            nav: !1,
6135            navText: ['<span aria-label="Previous">&#x2039;</span>', '<span aria-label="Next">&#x203a;</span>'],
6136            navSpeed: !1,
6137            navElement: 'button type="button" role="presentation"',
6138            navContainer: !1,
6139            navContainerClass: "owl-nav",
6140            navClass: ["owl-prev", "owl-next"],
6141            slideBy: 1,
6142            dotClass: "owl-dot",
6143            dotsClass: "owl-dots",
6144            dots: !0,
6145            dotsEach: !1,
6146            dotsData: !1,
6147            dotsSpeed: !1,
6148            dotsContainer: !1
6149        }, e.prototype.initialize = function() {
6150            var t, i = this._core.settings;
6151            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) {
6152                    this.prev(i.navSpeed)
6153                }, 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) {
6154                    this.next(i.navSpeed)
6155                }, 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) {
6156                    var e = o(t.target).parent().is(this._controls.$absolute) ? o(t.target).index() : o(t.target).parent().index();
6157                    t.preventDefault(), this.to(e, i.dotsSpeed)
6158                }, this)), this._overrides) this._core[t] = o.proxy(this[t], this)
6159        }, e.prototype.destroy = function() {
6160            var t, e, i, s, n;
6161            for (t in n = this._core.settings, this._handlers) this.$element.off(t, this._handlers[t]);
6162            for (e in this._controls) "$relative" === e && n.navContainer ? this._controls[e].html("") : this._controls[e].remove();
6163            for (s in this.overides) this._core[s] = this._overrides[s];
6164            for (i in Object.getOwnPropertyNames(this)) "function" != typeof this[i] && (this[i] = null)
6165        }, e.prototype.update = function() {
6166            var t, e, i = this._core.clones().length / 2,
6167                s = i + this._core.items().length,
6168                n = this._core.maximum(!0),
6169                o = this._core.settings,
6170                r = o.center || o.autoWidth || o.dotsData ? 1 : o.dotsEach || o.items;
6171            if ("page" !== o.slideBy && (o.slideBy = Math.min(o.slideBy, o.items)), o.dots || "page" == o.slideBy)
6172                for (this._pages = [], t = i, e = 0; t < s; t++) {
6173                    if (r <= e || 0 === e) {
6174                        if (this._pages.push({
6175                                start: Math.min(n, t - i),
6176                                end: t - i + r - 1
6177                            }), Math.min(n, t - i) === n) break;
6178                        e = 0, 0
6179                    }
6180                    e += this._core.mergers(this._core.relative(t))
6181                }
6182        }, e.prototype.draw = function() {
6183            var t, e = this._core.settings,
6184                i = this._core.items().length <= e.items,
6185                s = this._core.relative(this._core.current()),
6186                n = e.loop || e.rewind;
6187            this._controls.$relative.toggleClass("disabled", !e.nav || i), e.nav && (this._controls.$previous.toggleClass("disabled", !n && s <= this._core.minimum(!0)), this._controls.$next.toggleClass("disabled", !n && s >= 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"))
6188        }, e.prototype.onTrigger = function(t) {
6189            var e = this._core.settings;
6190            t.page = {
6191                index: o.inArray(this.current(), this._pages),
6192                count: this._pages.length,
6193                size: e && (e.center || e.autoWidth || e.dotsData ? 1 : e.dotsEach || e.items)
6194            }
6195        }, e.prototype.current = function() {
6196            var i = this._core.relative(this._core.current());
6197            return o.grep(this._pages, o.proxy(function(t, e) {
6198                return t.start <= i && t.end >= i
6199            }, this)).pop()
6200        }, e.prototype.getPosition = function(t) {
6201            var e, i, s = this._core.settings;
6202            return "page" == s.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 
6202+= s.slideBy : e -= s.slideBy), e
6203        }, e.prototype.next = function(t) {
6204            o.proxy(this._overrides.to, this._core)(this.getPosition(!0), t)
6205        }, e.prototype.prev = function(t) {
6206            o.proxy(this._overrides.to, this._core)(this.getPosition(!1), t)
6207        }, e.prototype.to = function(t, e, i) {
6208            var s;
6209            !i && this._pages.length ? (s = this._pages.length, o.proxy(this._overrides.to, this._core)(this._pages[(t % s + s) % s].start, e)) : o.proxy(this._overrides.to, this._core)(t, e)
6210        }, o.fn.owlCarousel.Constructor.Plugins.Navigation = e
6211    }(window.Zepto || window.jQuery, (window, document)),
6212    function(s, n) {
6213        "use strict";
6214        var e = function(t) {
6215            this._core = t, this._hashes = {}, this.$element = this._core.$element, this._handlers = {
6216                "initialized.owl.carousel": s.proxy(function(t) {
6217                    t.namespace && "URLHash" === this._core.settings.startPosition && s(n).trigger("hashchange.owl.navigation")
6218                }, this),
6219                "prepared.owl.carousel": s.proxy(function(t) {
6220                    if (t.namespace) {
6221                        var e = s(t.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");
6222                        if (!e) return;
6223                        this._hashes[e] = t.content
6224                    }
6225                }, this),
6226                "changed.owl.carousel": s.proxy(function(t) {
6227                    if (t.namespace && "position" === t.property.name) {
6228                        var i = this._core.items(this._core.relative(this._core.current())),
6229                            e = s.map(this._hashes, function(t, e) {
6230                                return t === i ? e : null
6231                            }).join();
6232                        if (!e || n.location.hash.slice(1) === e) return;
6233                        n.location.hash = e
6234                    }
6235                }, this)
6236            }, this._core.options = s.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers), s(n).on("hashchange.owl.navigation", s.proxy(function(t) {
6237                var e = n.location.hash.substring(1),
6238                    i = this._core.$stage.children(),
6239                    s = this._hashes[e] && i.index(this._hashes[e]);
6240                void 0 !== s && s !== this._core.current() && this._core.to(this._core.relative(s), !1, !0)
6241            }, this))
6242        };
6243        e.Defaults = {
6244            URLhashListener: !1
6245        }, e.prototype.destroy = function() {
6246            var t, e;
6247            for (t in s(n).off("hashchange.owl.navigation"), this._handlers) this._core.$element.off(t, this._handlers[t]);
6248            for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null)
6249        }, s.fn.owlCarousel.Constructor.Plugins.Hash = e
6250    }(window.Zepto || window.jQuery, window, document),
6251    function(n, o) {
6252        var r = n("<support>").get(0).style,
6253            a = "Webkit Moz O ms".split(" "),
6254            t = {
6255                transition: {
6256                    end: {
6257                        WebkitTransition: "webkitTransitionEnd",
6258                        MozTransition: "transitionend",
6259                        OTransition: "oTransitionEnd",
6260                        transition: "transitionend"
6261                    }
6262                },
6263                animation: {
6264                    end: {
6265                        WebkitAnimation: "webkitAnimationEnd",
6266                        MozAnimation: "animationend",
6267                        OAnimation: "oAnimationEnd",
6268                        animation: "animationend"
6269                    }
6270                }
6271            },
6272            e = function() {
6273                return !!l("transform")
6274            },
6275            i = function() {
6276                return !!l("perspective")
6277            },
6278            s = function() {
6279                return !!l("animation")
6280            };
6281
6282        function l(t, i) {
6283            var s = !1,
6284                e = t.charAt(0).toUpperCase() + t.slice(1);
6285            return n.each((t + " " + a.join(e + " ") + e).split(" "), function(t, e) {
6286                if (r[e] !== o) return s = !i || e, !1
6287            }), s
6288        }
6289
6290        function h(t) {
6291            return l(t, !0)
6292        }! function() {
6293            return !!l("transition")
6294        }() || (n.support.transition = new String(h("transition")), n.support.transition.end = t.transition.end[n.support.transition]), s() && (n.support.animation = new String(h("animation")), n.support.animation.end = t.animation.end[n.support.animation]), e() && (n.support.transform = new String(h("transform")), n.support.transform3d = i())
6295    }(window.Zepto || window.jQuery, (window, void document)),
6296    function(t) {
6297        "function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof exports ? t(require("jquery")) : t(jQuery)
6298    }(function(o, s) {
6299        var i = "plugin_hideShowPassword",
6300            n = ["show", "innerToggle"],
6301            e = {
6302                show: "infer",
6303                innerToggle: !1,
6304                enable: function() {
6305                    var t = document.body,
6306                        e = document.createElement("input"),
6307                        i = !0;
6308                    e = (t = t || document.createElement("body")).appendChild(e);
6309                    try {
6310                        e.setAttribute("type", "text")
6311                    } catch (t) {
6312                        i = !1
6313                    }
6314                    return t.removeChild(e), i
6315                }(),
6316                triggerOnToggle: !1,
6317                className: "hideShowPassword-field",
6318                initEvent: "hideShowPasswordInit",
6319                changeEvent: "passwordVisibilityChange",
6320                props: {
6321                    autocapitalize: "off",
6322                    autocomplete: "off",
6323                    autocorrect: "off",
6324                    spellcheck: "false"
6325                },
6326                toggle: {
6327                    element: '<button type="button">',
6328                    className: "hideShowPassword-toggle",
6329                    touchSupport: "undefined" != typeof Modernizr && Modernizr.touchevents,
6330                    attachToEvent: "click.hideShowPassword",
6331                    attachToTouchEvent: "touchstart.hideShowPassword mousedown.hideShowPassword",
6332                    attachToKeyEvent: "keyup",
6333                    attachToKeyCodes: !0,
6334                    styles: {
6335                        position: "absolute"
6336                    },
6337                    touchStyles: {
6338                        pointerEvents: "none"
6339                    },
6340                    position: "infer",
6341                    verticalAlign: "middle",
6342                    offset: 0,
6343                    attr: {
6344                        role: "button",
6345                        "aria-label": "Show Password",
6346                        title: "Show Password",
6347                        tabIndex: 0
6348                    }
6349                },
6350                wrapper: {
6351                    element: "<div>",
6352                    className: "hideShowPassword-wrapper",
6353                    enforceWidth: !1,
6354                    styles: {
6355                        position: "relative"
6356                    },
6357                    inheritStyles: ["display", "verticalAlign", "marginTop", "marginRight", "marginBottom", "marginLeft"],
6358                    innerElementStyles: {
6359                        marginTop: 0,
6360                        marginRight: 0,
6361                        marginBottom: 0,
6362                        marginLeft: 0
6363                    }
6364                },
6365                states: {
6366                    shown: {
6367                        className: "hideShowPassword-shown",
6368                        changeEvent: "passwordShown",
6369                        props: {
6370                            type: "text"
6371                        },
6372                        toggle: {
6373                            className: "hideShowPassword-toggle-hide",
6374                            content: "Hide",
6375                            attr: {
6376                                "aria-pressed": "true",
6377                                title: "Hide Password"
6378                            }
6379                        }
6380                    },
6381                    hidden: {
6382                        className: "hideShowPassword-hidden",
6383                        changeEvent: "passwordHidden",
6384                        props: {
6385                            type: "password"
6386                        },
6387                        toggle: {
6388                            className: "hideShowPassword-toggle-show",
6389                            content: "Show",
6390                            attr: {
6391                                "aria-pressed": "false",
6392                                title: "Show Password"
6393                            }
6394                        }
6395                    }
6396                }
6397            };
6398
6399        function r(t, e) {
6400            this.element = o(t), this.wrapperElement = o(), this.toggleElement = o(), this.init(e)
6401        }
6402        r.prototype = {
6403            init: function(t) {
6404                this.update(t, e) && (this.element.addClass(this.options.className), this.options.innerToggle && (this.wrapElement(this.options.wrapper), this.initToggle(this.options.toggle), "string" == typeof this.options.innerToggle && (this.toggleElement.hide(), this.element.one(this.options.innerToggle, o.proxy(function() {
6405                    this.toggleElement.show()
6406                }, this)))), this.element.trigger(this.options.initEvent, [this]))
6407            },
6408            update: function(t, e) {
6409                return this.options = this.prepareOptions(t, e), this.updateElement() && this.element.trigger(this.options.changeEvent, [this]).trigger(this.state().changeEvent, [this]), this.options.enable
6410            },
6411            toggle: function(t) {
6412                return t = t || "toggle", this.update({
6413                    show: t
6414                })
6415            },
6416            prepareOptions: function(t, e) {
6417                var i, s = t || {},
6418                    n = [];
6419                if (e = e || this.options, t = o.extend(!0, {}, e, t), s.hasOwnProperty("wrapper") && s.wrapper.hasOwnProperty("inheritStyles") && (t.wrapper.inheritStyles = s.wrapper.inheritStyles), t.enable && ("toggle" === t.show ? t.show = this.isType("hidden", t.states) : "infer" === t.show && (t.show = this.isType("shown", t.states)), "infer" === t.toggle.position && (t.toggle.position = "rtl" === this.element.css("text-direction") ? "left" : "right"), !o.isArray(t.toggle.attachToKeyCodes))) {
6420                    if (!0 === t.toggle.attachToKeyCodes) switch ((i = o(t.toggle.element)).prop("tagName").toLowerCase()) {
6421                        case "button":
6422                        case "input":
6423                            break;
6424                        case "a":
6425                            if (i.filter("[href]").length) {
6426                                n.push(32);
6427                                break
6428                            }
6429                        default:
6430                            n.push(32, 13)
6431                    }
6432                    t.toggle.attachToKeyCodes = n
6433                }
6434                return t
6435            },
6436            updateElement: function() {
6437                return !(!this.options.enable || this.isType()) && (this.element.prop(o.extend({}, this.options.props, this.state().props)).addClass(this.state().className).removeClass(this.otherState().className), this.options.triggerOnToggle && this.element.trigger(this.options.triggerOnToggle, [this]), this.updateToggle(), !0)
6438            },
6439            isType: function(t, e) {
6440                return (e = e || this.options.states)[t = t || this.state(s, s, e).props.type] && (t = e[t].props.type), this.element.prop("type") === t
6441            },
6442            state: function(t, e, i) {
6443                return i = i || this.options.states, t === s && (t = this.options.show), "boolean" == typeof t && (t = t ? "shown" : "hidden"), e && (t = "shown" === t ? "hidden" : "shown"), i[t]
6444            },
6445            otherState: function(t) {
6446                return this.state(t, !0)
6447            },
6448            wrapElement: function(i) {
6449                var t, e = i.enforceWidth;
6450                return this.wrapperElement.length || (t = this.element.outerWidth(), o.each(i.inheritStyles, o.proxy(function(t, e) {
6451                    i.styles[e] = this.element.css(e)
6452                }, this)), this.element.css(i.innerElementStyles).wrap(o(i.element).addClass(i.className).css(i.styles)), this.wrapperElement = this.element.parent(), !0 === e && (e = this.wrapperElement.outerWidth() !== t && t), !1 !== e && this.wrapperElement.css("width", e)), this.wrapperElement
6453            },
6454            initToggle: function(t) {
6455                return this.toggleElement.length || (this.toggleElement = o(t.element).attr(t.attr).addClass(t.className).css(t.styles).appendTo(this.wrapperElement), this.updateToggle(), this.positionToggle(t.position, t.verticalAlign, t.offset), t.touchSupport ? (this.toggleElement.css(t.touchStyles), this.element.on(t.attachToTouchEvent, o.proxy(this.toggleTouchEvent, this))) : this.toggleElement.on(t.attachToEvent, o.proxy(this.toggleEvent, this)), t.attachToKeyCodes.length && this.toggleElement.on(t.attachToKeyEvent, o.proxy(this.toggleKeyEvent, this))), this.toggleElement
6456            },
6457            positionToggle: function(t, e, i) {
6458                var s = {};
6459                switch (s[t] = i, e) {
6460                    case "top":
6461                    case "bottom":
6462                        s[e] = i;
6463                        break;
6464                    case "middle":
6465                        s.top = "50%", s.marginTop = this.toggleElement.outerHeight() / -2
6466                }
6467                return this.toggleElement.css(s)
6468            },
6469            updateToggle: function(t, e) {
6470                var i, s;
6471                return this.toggleElement.length && (i = "padding-" + this.options.toggle.position, t = t || this.state().toggle, e = e || this.otherState().toggle, this.toggleElement.attr(t.attr).addClass(t.className).removeClass(e.className).html(t.content), s = this.toggleElement.outerWidth() + 2 * this.options.toggle.offset, this.element.css(i) !== s && this.element.css(i, s)), this.toggleElement
6472            },
6473            toggleEvent: function(t) {
6474                t.preventDefault(), this.toggle()
6475            },
6476            toggleKeyEvent: function(i) {
6477                o.each(this.options.toggle.attachToKeyCodes, o.proxy(function(t, e) {
6478                    if (i.which === e) return this.toggleEvent(i), !1
6479                }, this))
6480            },
6481            toggleTouchEvent: function(t) {
6482                var e, i, s, n = this.toggleElement.offset().left;
6483                n && (e = t.pageX || t.originalEvent.pageX, s = "left" === this.options.toggle.position ? (i = e, n += this.toggleElement.outerWidth()) : (i = n, e), i <= s && this.toggleEvent(t))
6484            }
6485        }, o.fn.hideShowPassword = function() {
6486            var s = {};
6487            return o.each(arguments, function(t, e) {
6488                var i = {};
6489                if ("object" == typeof e) i = e;
6490                else {
6491                    if (!n[t]) return !1;
6492                    i[n[t]] = e
6493                }
6494                o.extend(!0, s, i)
6495            }), this.each(function() {
6496                var t = o(this),
6497                    e = t.data(i);
6498                e ? e.update(s) : t.data(i, new r(this, s))
6499            })
6500        }, o.each({
6501            show: !0,
6502            hide: !1,
6503            toggle: "toggle"
6504        }, function(t, i) {
6505            o.fn[t + "Password"] = function(t, e) {
6506                return this.hideShowPassword(i, t, e)
6507            }
6508        })
6509    }),
6510    function(T, E) {
6511        var f = T(window);
6512
6513        function D() {
6514            return new Date(Date.UTC.apply(Date, arguments))
6515        }
6516
6517        function a() {
6518            var t = new Date;
6519            return D(t.getFullYear(), t.getMonth(), t.getDate())
6520        }
6521
6522        function t(t) {
6523            return function() {
6524                return this[t].apply(this, arguments)
6525            }
6526        }
6527
6528        function v(t, e) {
6529            this.dates = new i, this.viewDate = a(), this.focus
6529Date = null, this._process_options(e), this.element = T(t), this.isInline = !1, this.isInput = this.element.is("input"), this.component = !!this.element.is(".date") && this.element.find(".add-on, .input-group-addon, .btn"), this.hasInput = this.component && this.element.find("input").length, this.component && 0 === this.component.length && (this.component = !1), this.picker = T(M.template), this._buildEvents(), this._attachEvents(), this.isInline ? this.picker.addClass("datepicker-inline").appendTo(this.element) : this.picker.addClass("datepicker-dropdown dropdown-menu"), this.o.rtl && this.picker.addClass("datepicker-rtl"), this.viewMode = this.o.startView, this.o.calendarWeeks && this.picker.find("tfoot th.today").attr("colspan", function(t, e) {
6530                return parseInt(e) + 1
6531            }), this._allow_update = !1, this.setStartDate(this._o.startDate), this.setEndDate(this._o.endDate), this.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled), this.fillDow(), this.fillMonths(), this._allow_update = !0, this.update(), this.showMode(), this.isInline && this.show()
6532        }
6533        var e, i = (e = {
6534            get: function(t) {
6535                return this.slice(t)[0]
6536            },
6537            contains: function(t) {
6538                for (var e = t && t.valueOf(), i = 0, s = this.length; i < s; i++)
6539                    if (this[i].valueOf() === e) return i;
6540                return -1
6541            },
6542            remove: function(t) {
6543                this.splice(t, 1)
6544            },
6545            replace: function(t) {
6546                t && (T.isArray(t) || (t = [t]), this.clear(), this.push.apply(this, t))
6547            },
6548            clear: function() {
6549                this.length = 0
6550            },
6551            copy: function() {
6552                var t = new i;
6553                return t.replace(this), t
6554            }
6555        }, function() {
6556            var t = [];
6557            return t.push.apply(t, arguments), T.extend(t, e), t
6558        });
6559        v.prototype = {
6560            constructor: v,
6561            _process_options: function(t) {
6562                this._o = T.extend({}, this._o, t);
6563                var e = this.o = T.extend({}, this._o),
6564                    i = e.language;
6565                switch (S[i] || (i = i.split("-")[0], S[i] || (i = d.language)), e.language = i, e.startView) {
6566                    case 2:
6567                    case "decade":
6568                        e.startView = 2;
6569                        break;
6570                    case 1:
6571                    case "year":
6572                        e.startView = 1;
6573                        break;
6574                    default:
6575                        e.startView = 0
6576                }
6577                switch (e.minViewMode) {
6578                    case 1:
6579                    case "months":
6580                        e.minViewMode = 1;
6581                        break;
6582                    case 2:
6583                    case "years":
6584                        e.minViewMode = 2;
6585                        break;
6586                    default:
6587                        e.minViewMode = 0
6588                }
6589                e.startView = Math.max(e.startView, e.minViewMode), !0 !== e.multidate && (e.multidate = Number(e.multidate) || !1, !1 !== e.multidate ? e.multidate = Math.max(0, e.multidate) : e.multidate = 1), e.multidateSeparator = String(e.multidateSeparator), e.weekStart %= 7, e.weekEnd = (e.weekStart + 6) % 7;
6590                var s = M.parseFormat(e.format);
6591                e.startDate !== -1 / 0 && (e.startDate ? e.startDate instanceof Date ? e.startDate = this._local_to_utc(this._zero_time(e.startDate)) : e.startDate = M.parseDate(e.startDate, s, e.language) : e.startDate = -1 / 0), e.endDate !== 1 / 0 && (e.endDate ? e.endDate instanceof Date ? e.endDate = this._local_to_utc(this._zero_time(e.endDate)) : e.endDate = M.parseDate(e.endDate, s, e.language) : e.endDate = 1 / 0), e.daysOfWeekDisabled = e.daysOfWeekDisabled || [], T.isArray(e.daysOfWeekDisabled) || (e.daysOfWeekDisabled = e.daysOfWeekDisabled.split(/[,\s]*/)), e.daysOfWeekDisabled = T.map(e.daysOfWeekDisabled, function(t) {
6592                    return parseInt(t, 10)
6593                });
6594                var n = String(e.orientation).toLowerCase().split(/\s+/g),
6595                    o = e.orientation.toLowerCase();
6596                if (n = T.grep(n, function(t) {
6597                        return /^auto|left|right|top|bottom$/.test(t)
6598                    }), e.orientation = {
6599                        x: "auto",
6600                        y: "auto"
6601                    }, o && "auto" !== o)
6602                    if (1 === n.length) switch (n[0]) {
6603                        case "top":
6604                        case "bottom":
6605                            e.orientation.y = n[0];
6606                            break;
6607                        case "left":
6608                        case "right":
6609                            e.orientation.x = n[0]
6610                    } else o = T.grep(n, function(t) {
6611                        return /^left|right$/.test(t)
6612                    }), e.orientation.x = o[0] || "auto", o = T.grep(n, function(t) {
6613                        return /^top|bottom$/.test(t)
6614                    }), e.orientation.y = o[0] || "auto";
6615                    else;
6616            },
6617            _events: [],
6618            _secondaryEvents: [],
6619            _applyEvents: function(t) {
6620                for (var e, i, s, n = 0; n < t.length; n++) e = t[n][0], 2 === t[n].length ? (i = E, s = t[n][1]) : 3 === t[n].length && (i = t[n][1], s = t[n][2]), e.on(s, i)
6621            },
6622            _unapplyEvents: function(t) {
6623                for (var e, i, s, n = 0; n < t.length; n++) e = t[n][0], 2 === t[n].length ? (s = E, i = t[n][1]) : 3 === t[n].length && (s = t[n][1], i = t[n][2]), e.off(i, s)
6624            },
6625            _buildEvents: function() {
6626                this.isInput ? this._events = [
6627                    [this.element, {
6628                        focus: T.proxy(this.show, this),
6629                        keyup: T.proxy(function(t) {
6630                            -1 === T.inArray(t.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) && this.update()
6631                        }, this),
6632                        keydown: T.proxy(this.keydown, this)
6633                    }]
6634                ] : this.component && this.hasInput ? this._events = [
6635                    [this.element.find("input"), {
6636                        focus: T.proxy(this.show, this),
6637                        keyup: T.proxy(function(t) {
6638                            -1 === T.inArray(t.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) && this.update()
6639                        }, this),
6640                        keydown: T.proxy(this.keydown, this)
6641                    }],
6642                    [this.component, {
6643                        click: T.proxy(this.show, this)
6644                    }]
6645                ] : this.element.is("div") ? this.isInline = !0 : this._events = [
6646                    [this.element, {
6647                        click: T.proxy(this.show, this)
6648                    }]
6649                ], this._events.push([this.element, "*", {
6650                    blur: T.proxy(function(t) {
6651                        this._focused_from = t.target
6652                    }, this)
6653                }], [this.element, {
6654                    blur: T.proxy(function(t) {
6655                        this._focused_from = t.target
6656                    }, this)
6657                }]), this._secondaryEvents = [
6658                    [this.picker, {
6659                        click: T.proxy(this.click, this)
6660                    }],
6661                    [T(window), {
6662                        resize: T.proxy(this.place, this)
6663                    }],
6664                    [T(document), {
6665                        "mousedown touchstart": T.proxy(function(t) {
6666                            this.element.is(t.target) || this.element.find(t.target).length || this.picker.is(t.target) || this.picker.find(t.target).length || this.hide()
6667                        }, this)
6668                    }]
6669                ]
6670            },
6671            _attachEvents: function() {
6672                this._detachEvents(), this._applyEvents(this._events)
6673            },
6674            _detachEvents: function() {
6675                this._unapplyEvents(this._events)
6676            },
6677            _attachSecondaryEvents: function() {
6678                this._detachSecondaryEvents(), this._applyEvents(this._secondaryEvents)
6679            },
6680            _detachSecondaryEvents: function() {
6681                this._unapplyEvents(this._secondaryEvents)
6682            },
6683            _trigger: function(t, e) {
6684                var i = e || this.dates.get(-1),
6685                    s = this._utc_to_local(i);
6686                this.element.trigger({
6687                    type: t,
6688                    date: s,
6689                    dates: T.map(this.dates, this._utc_to_local),
6690                    format: T.proxy(function(t, e) {
6691                        0 === arguments.length ? (t = this.dates.length - 1, e = this.o.format) : "string" == typeof t && (e = t, t = this.dates.length - 1), e = e || this.o.format;
6692                        var i = this.dates.get(t);
6693                        return M.formatDate(i, e, this.o.language)
6694                    }, this)
6695                })
6696            },
6697            show: function() {
6698                this.isInline || this.picker.appendTo("body"), this.picker.show(), this.place(), this._attachSecondaryEvents(), this._trigger("show")
6699            },
6700            hide: function() {
6701                this.isInline || this.picker.is(":visible") && (this.focusDate = null, this.picker.hide().detach(), this._detachSecondaryEvents(), this.viewMode = this.o.startView, this.showMode(), this.o.forceParse && (this.isInput && this.element.val() || this.hasInput && this.element.find("input").val()) && this.setValue(), this._trigger("hide"))
6702            },
6703            remove: function() {
6704                this.hide(), this._detachEvents(), this._detachSecondaryEvents(), this.picker.remove(), delete this.element.data().datepicker, this.isInput || delete this.element.data().date
6705            },
6706            _utc_to_local: function(t) {
6707                return t && new Date(t.getTime() + 6e4 * t.getTimezoneOffset())
6708            },
6709            _local_to_utc: function(t) {
6710                return t && new Date(t.getTime() - 6e4 * t.getTimezoneOffset())
6711            },
6712            _zero_time: function(t) {
6713                return t && new Date(t.getFullYear(), t.getMonth(), t.getDate())
6714            },
6715            _zero_utc_time: function(t) {
6716                return t && new Date(Date.UTC(t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate()))
6717            },
6718            getDates: function() {
6719                return T.map(this.dates, this._utc_to_local)
6720            },
6721            getUTCDates: function() {
6722                return T.map(this.dates, function(t) {
6723                    return new Date(t)
6724                })
6725            },
6726            getDate: function() {
6727                return this._utc_to_local(this.getUTCDate())
6728            },
6729            getUTCDate: function() {
6730                return new Date(this.dates.get(-1))
6731            },
6732            setDates: function() {
6733                var t = T.isArray(arguments[0]) ? arguments[0] : arguments;
6734                this.update.apply(this, t), this._trigger("changeDate"), this.setValue()
6735            },
6736            setUTCDates: function() {
6737                var t = T.isArray(arguments[0]) ? arguments[0] : arguments;
6738                this.update.apply(this, T.map(t, this._utc_to_local)), this._trigger("changeDate"), this.setValue()
6739            },
6740            setDate: t("setDates"),
6741            setUTCDate: t("setUTCDates"),
6742            setValue: function() {
6743                var t = this.getFormattedDate();
6744                this.isInput ? this.element.val(t).change() : this.component && this.element.find("input").val(t).change()
6745            },
6746            getFormattedDate: function(e) {
6747                e === E && (e = this.o.format);
6748                var i = this.o.language;
6749                return T.map(this.dates, function(t) {
6750                    return M.formatDate(t, e, i)
6751                }).join(this.o.multidateSeparator)
6752            },
6753            setStartDate: function(t) {
6754                this._process_options({
6755                    startDate: t
6756                }), this.update(), this.updateNavArrows()
6757            },
6758            setEndDate: function(t) {
6759                this._process_options({
6760                    endDate: t
6761                }), this.update(), this.updateNavArrows()
6762            },
6763            setDaysOfWeekDisabled: function(t) {
6764                this._process_options({
6765                    daysOfWeekDisabled: t
6766                }), this.update(), this.updateNavArrows()
6767            },
6768            place: function() {
6769                if (!this.isInline) {
6770                    var t = this.picker.outerWidth(),
6771                        e = this.picker.outerHeight(),
6772                        i = f.width(),
6773                        s = f.height(),
6774                        n = f.scrollTop(),
6775                        o = parseInt(this.element.parents().filter(function() {
6776                            return "auto" !== T(this).css("z-index")
6777                        }).first().css("z-index")) + 9999,
6778                        r = this.component ? this.component.parent().offset() : this.element.offset(),
6779                        a = this.component ? this.component.outerHeight(!0) : this.element.outerHeight(!1),
6780                        l = this.component ? this.component.outerWidth(!0) : this.element.outerWidth(!1),
6781                        h = r.left,
6782                        c = r.top;
6783                    this.picker.removeClass("datepicker-orient-top datepicker-orient-bottom datepicker-orient-right datepicker-orient-left"), "auto" !== this.o.orientation.x ? (this.picker.addClass("datepicker-orient-" + this.o.orientation.x), "right" === this.o.orientation.x && (h -= t - l)) : (this.picker.addClass("datepicker-orient-left"), r.left < 0 ? h -= r.left - 10 : r.left + t > i && (h = i - t - 10));
6784                    var d, u, p = this.o.orientation.y;
6785                    "auto" === p && (d = -n + r.top - e, u = n + s - (r.top + a + e), p = Math.max(d, u) === u ? "top" : "bottom"), this.picker.addClass("datepicker-orient-" + p), "top" === p ? c += a : c -= e + parseInt(this.picker.css("padding-top")), this.picker.css({
6786                        top: c,
6787                        left: h,
6788                        zIndex: o
6789                    })
6790                }
6791            },
6792            _allow_update: !0,
6793            update: function() {
6794                if (this._allow_update) {
6795                    var t = this.dates.copy(),
6796                        i = [],
6797                        e = !1;
6798                    arguments.length ? (T.each(arguments, T.proxy(function(t, e) {
6799                        e instanceof Date && (e = this._local_to_utc(e)), i.push(e)
6800                    }, this)), e = !0) : (i = (i = this.isInput ? this.element.val() : this.element.data("date") || this.element.find("input").val()) && this.o.multidate ? i.split(this.o.multidateSeparator) : [i], delete this.element.data().date), i = T.map(i, T.proxy(function(t) {
6801                        return M.parseDate(t, this.o.format, this.o.language)
6802                    }, this)), i = T.grep(i, T.proxy(function(t) {
6803                        return t < this.o.startDate || t > this.o.endDate || !t
6804                    }, this), !0), this.dates.replace(i), this.dates.length ? this.viewDate = new Date(this.dates.get(-1)) : this.viewDate < this.o.startDate ? this.viewDate = new Date(this.o.startDate) : this.viewDate > this.o.endDate && (this.viewDate = new Date(this.o.endDate)), e ? this.setValue() : i.length && String(t) !== String(this.dates) && this._trigger("changeDate"), !this.dates.length && t.length && this._trigger("clearDate"), this.fill()
6805                }
6806            },
6807            fillDow: function() {
6808                var t = this.o.weekStart,
6809                    e = "<tr>";
6810                if (this.o.calendarWeeks) {
6811                    var i = '<th class="cw">&nbsp;</th>';
6812                    e += i, this.picker.find(".datepicker-days thead tr:first-child").prepend(i)
6813                }
6814                for (; t < this.o.weekStart + 7;) e += '<th class="dow">' + S[this.o.language].daysMin[t++ % 7] + "</th>";
6815                e += "</tr>", this.picker.find(".datepicker-days thead").append(e)
6816            },
6817            fillMonths: function() {
6818                for (var t = "", e = 0; e < 12;) t += '<span class="month">' + S[this.o.language].monthsShort[e++] + "</span>";
6819                this.picker.find(".datepicker-months td").html(t)
6820            },
6821            setRange: function(t) {
6822                t && t.length ? this.range = T.map(t, function(t) {
6823                    return t.valueOf()
6824                }) : delete this.range, this.fill()
6825            },
6826            getClassNames: function(t) {
6827                var e = [],
6828                    i = this.viewDate.getUTCFullYear(),
6829                    s = this.viewDate.getUTCMonth(),
6830                    n = new Date;
6831                return t.getUTCFullYear() < i || t.getUTCFullYear() === i && t.getUTCMonth() < s ? e.push("old") : (t.getUTCFullYear() > i || t.getUTCFullYear() === i && t.getUTCMonth() > s) && e.push("new"), this.focusDate && t.valueOf() === this.focusDate.valueOf() && e.push("focused"), this.o.todayHighlight && t.getUTCFullYear() === n.getFullYear() && t.getUTCMonth() === n.getMonth() && t.getUTCDate() === n.getDate() && e.push("today"), -1 !== this.dates.contains(t) && e.push("active"), (t.valueOf() < this.o.startDate || t.valueOf() > this.o.endDate || -1 !== T.inArray(t.getUTCDay(), this.o.daysOfWeekDisabled)) && e.push("disabled"), this.range && (t > this.range[0] && t < this.range[this.range.length - 1] && e.push("range"), -1 !== T.inArray(t.valueOf(), this.range) && e.push("selected")), e
6832            },
6833            fill: function() {
6834                var t, e = new Date(this.viewDate),
6835                    i = e.getUTCFullYear(),
6836                    s = e.getUTCMonth(),
6837                    n = this.o.startDate !== -1 / 0 ? this.o.startDate.getUTCFullYear() : -1 / 0,
6838                    o = this.o.startDate !== -1 / 0 ? this.o.startDate.getUTCMonth() : -1 / 0,
6839                    r = this.o.endDate !== 1 / 0 ? this.o.endDate.getUTCFullYear() : 1 / 0,
6840                    a = this.o.endDate !== 1 / 0 ? this.o.endDate.getUTCMonth() : 1 / 0,
6841                    l = S[this.o.language].today || S.en.today || "",
6842                    h = S[this.o.language].clear || S.en.clear || "";
6843                this.picker.find(".datepicker-days thead th.datepicker-switch").text(S[this.o.language].months[s] + " " + i), this.picker.find("tfoot th.today").text(l).toggle(!1 !== this.o.todayBtn), this.picker.find("tfoot th.clear").text(h).toggle(!1 !== this.o.clearBtn), this.updateNavArrows(), this.fillMonths();
6844                var c = D(i, s - 1, 28),
6845                    d = M.getDaysInMonth(c.getUTCFullYear(), c.getUTCMonth());
6846                c.setUTCDate(d), c.setUTCDate(d - (c.getUTCDay() - this.o.weekStart + 7) % 7);
6847                var u = new Date(c);
6848                u.setUTCDate(u.getUTCDate() + 42), u = u.valueOf();
6849                for (var p, f = []; c.valueOf() < u;) {
6850                    if (c.getUTCDay() === this.o.weekStart && (f.push("<tr>"), this.o.calendarWeeks)) {
6851                        var m = new Date(+c + (this.o.weekStart - c.getUTCDay() - 7) % 7 * 864e5),
6852                            g = new Date(Number(m) + (11 - m.getUTCDay()) % 7 * 864e5),
6853                            _ = new Date(Number(_ = D(g.getUTCFullYear(), 0, 1)) + (11 - _.getUTCDay()) % 7 * 864e5),
6854                            v = (g - _) / 864e5 / 7 + 1;
6855                        f.push('<td class="cw">' + v + "</td>")
6856                    }
6857                    if ((p = this.getClassNames(c)).push("day"), this.o.beforeShowDay !== T.noop) {
6858                        var y = this.o.beforeShowDay(this._utc_to_local(c));
6859                        y === E ? y = {} : "boolean" == typeof y ? y = {
6860                            enabled: y
6861                        } : "string" == typeof y && (y = {
6862                            classes: y
6863                        }), !1 === y.enabled && p.push("disabled"), y.classes && (p = p.concat(y.classes.split(/\s+/))), y.tooltip && (t = y.tooltip)
6864                    }
6865                    p = T.unique(p), f.push('<td class="' + p.join(" ") + '"' + (t ? ' title="' + t + '"' : "") + ">" + c.getUTCDate() + "</td>"), c.getUTCDay() === this.o.weekEnd && f.push("</tr>"), c.setUTCDate(c.getUTCDate() + 1)
6866                }
6867                this.picker.find(".datepicker-days tbody").empty().append(f.join(""));
6868                var w = this.picker.find(".datepicker-months").find("th:eq(1)").text(i).end().find("span").removeClass("active");
6869                T.each(this.dates, function(t, e) {
6870                    e.getUTCFullYear() === i && w.eq(e.getUTCMonth()).addClass("active")
6871                }), (i < n || r < i) && w.addClass("disabled"), i === n && w.slice(0, o).addClass("d
6871isabled"), i === r && w.slice(a + 1).addClass("disabled"), f = "", i = 10 * parseInt(i / 10, 10);
6872                var b = this.picker.find(".datepicker-years").find("th:eq(1)").text(i + "-" + (i + 9)).end().find("td");
6873                --i;
6874                for (var k, x = T.map(this.dates, function(t) {
6875                        return t.getUTCFullYear()
6876                    }), C = -1; C < 11; C++) k = ["year"], -1 === C ? k.push("old") : 10 === C && k.push("new"), -1 !== T.inArray(i, x) && k.push("active"), (i < n || r < i) && k.push("disabled"), f += '<span class="' + k.join(" ") + '">' + i + "</span>", i += 1;
6877                b.html(f)
6878            },
6879            updateNavArrows: function() {
6880                if (this._allow_update) {
6881                    var t = new Date(this.viewDate),
6882                        e = t.getUTCFullYear(),
6883                        i = t.getUTCMonth();
6884                    switch (this.viewMode) {
6885                        case 0:
6886                            this.o.startDate !== -1 / 0 && e <= this.o.startDate.getUTCFullYear() && i <= this.o.startDate.getUTCMonth() ? this.picker.find(".prev").css({
6887                                visibility: "hidden"
6888                            }) : this.picker.find(".prev").css({
6889                                visibility: "visible"
6890                            }), this.o.endDate !== 1 / 0 && e >= this.o.endDate.getUTCFullYear() && i >= this.o.endDate.getUTCMonth() ? this.picker.find(".next").css({
6891                                visibility: "hidden"
6892                            }) : this.picker.find(".next").css({
6893                                visibility: "visible"
6894                            });
6895                            break;
6896                        case 1:
6897                        case 2:
6898                            this.o.startDate !== -1 / 0 && e <= this.o.startDate.getUTCFullYear() ? this.picker.find(".prev").css({
6899                                visibility: "hidden"
6900                            }) : this.picker.find(".prev").css({
6901                                visibility: "visible"
6902                            }), this.o.endDate !== 1 / 0 && e >= this.o.endDate.getUTCFullYear() ? this.picker.find(".next").css({
6903                                visibility: "hidden"
6904                            }) : this.picker.find(".next").css({
6905                                visibility: "visible"
6906                            })
6907                    }
6908                }
6909            },
6910            click: function(t) {
6911                t.preventDefault();
6912                var e, i, s, n = T(t.target).closest("span, td, th");
6913                if (1 === n.length) switch (n[0].nodeName.toLowerCase()) {
6914                    case "th":
6915                        switch (n[0].className) {
6916                            case "datepicker-switch":
6917                                this.showMode(1);
6918                                break;
6919                            case "prev":
6920                            case "next":
6921                                var o = M.modes[this.viewMode].navStep * ("prev" === n[0].className ? -1 : 1);
6922                                switch (this.viewMode) {
6923                                    case 0:
6924                                        this.viewDate = this.moveMonth(this.viewDate, o), this._trigger("changeMonth", this.viewDate);
6925                                        break;
6926                                    case 1:
6927                                    case 2:
6928                                        this.viewDate = this.moveYear(this.viewDate, o), 1 === this.viewMode && this._trigger("changeYear", this.viewDate)
6929                                }
6930                                this.fill();
6931                                break;
6932                            case "today":
6933                                var r = new Date;
6934                                r = D(r.getFullYear(), r.getMonth(), r.getDate(), 0, 0, 0), this.showMode(-2);
6935                                var a = "linked" === this.o.todayBtn ? null : "view";
6936                                this._setDate(r, a);
6937                                break;
6938                            case "clear":
6939                                var l;
6940                                this.isInput ? l = this.element : this.component && (l = this.element.find("input")), l && l.val("").change(), this.update(), this._trigger("changeDate"), this.o.autoclose && this.hide()
6941                        }
6942                        break;
6943                    case "span":
6944                        n.is(".disabled") || (this.viewDate.setUTCDate(1), n.is(".month") ? (s = 1, i = n.parent().find("span").index(n), e = this.viewDate.getUTCFullYear(), this.viewDate.setUTCMonth(i), this._trigger("changeMonth", this.viewDate), 1 === this.o.minViewMode && this._setDate(D(e, i, s))) : (s = 1, i = 0, e = parseInt(n.text(), 10) || 0, this.viewDate.setUTCFullYear(e), this._trigger("changeYear", this.viewDate), 2 === this.o.minViewMode && this._setDate(D(e, i, s))), this.showMode(-1), this.fill());
6945                        break;
6946                    case "td":
6947                        n.is(".day") && !n.is(".disabled") && (s = parseInt(n.text(), 10) || 1, e = this.viewDate.getUTCFullYear(), i = this.viewDate.getUTCMonth(), n.is(".old") ? 0 === i ? (i = 11, --e) : --i : n.is(".new") && (11 === i ? (i = 0, e += 1) : i += 1), this._setDate(D(e, i, s)))
6948                }
6949                this.picker.is(":visible") && this._focused_from && T(this._focused_from).focus(), delete this._focused_from
6950            },
6951            _toggle_multidate: function(t) {
6952                var e = this.dates.contains(t);
6953                if (t ? -1 !== e ? this.dates.remove(e) : this.dates.push(t) : this.dates.clear(), "number" == typeof this.o.multidate)
6954                    for (; this.dates.length > this.o.multidate;) this.dates.remove(0)
6955            },
6956            _setDate: function(t, e) {
6957                var i;
6958                e && "date" !== e || this._toggle_multidate(t && new Date(t)), e && "view" !== e || (this.viewDate = t && new Date(t)), this.fill(), this.setValue(), this._trigger("changeDate"), this.isInput ? i = this.element : this.component && (i = this.element.find("input")), i && i.change(), !this.o.autoclose || e && "date" !== e || this.hide()
6959            },
6960            moveMonth: function(t, e) {
6961                if (!t) return E;
6962                if (!e) return t;
6963                var i, s, n = new Date(t.valueOf()),
6964                    o = n.getUTCDate(),
6965                    r = n.getUTCMonth(),
6966                    a = Math.abs(e);
6967                if (e = 0 < e ? 1 : -1, 1 === a) s = -1 === e ? function() {
6968                    return n.getUTCMonth() === r
6969                } : function() {
6970                    return n.getUTCMonth() !== i
6971                }, i = r + e, n.setUTCMonth(i), (i < 0 || 11 < i) && (i = (i + 12) % 12);
6972                else {
6973                    for (var l = 0; l < a; l++) n = this.moveMonth(n, e);
6974                    i = n.getUTCMonth(), n.setUTCDate(o), s = function() {
6975                        return i !== n.getUTCMonth()
6976                    }
6977                }
6978                for (; s();) n.setUTCDate(--o), n.setUTCMonth(i);
6979                return n
6980            },
6981            moveYear: function(t, e) {
6982                return this.moveMonth(t, 12 * e)
6983            },
6984            dateWithinRange: function(t) {
6985                return t >= this.o.startDate && t <= this.o.endDate
6986            },
6987            keydown: function(t) {
6988                if (this.picker.is(":not(:visible)")) 27 === t.keyCode && this.show();
6989                else {
6990                    var e, i, s, n, o = !1,
6991                        r = this.focusDate || this.viewDate;
6992                    switch (t.keyCode) {
6993                        case 27:
6994                            this.focusDate ? (this.focusDate = null, this.viewDate = this.dates.get(-1) || this.viewDate, this.fill()) : this.hide(), t.preventDefault();
6995                            break;
6996                        case 37:
6997                        case 39:
6998                            if (!this.o.keyboardNavigation) break;
6999                            e = 37 === t.keyCode ? -1 : 1, t.ctrlKey ? (i = this.moveYear(this.dates.get(-1) || a(), e), s = this.moveYear(r, e), this._trigger("changeYear", this.viewDate)) : t.shiftKey ? (i = this.moveMonth(this.dates.get(-1) || a(), e), s = this.moveMonth(r, e), this._trigger("changeMonth", this.viewDate)) : ((i = new Date(this.dates.get(-1) || a())).setUTCDate(i.getUTCDate() + e), (s = new Date(r)).setUTCDate(r.getUTCDate() + e)), this.dateWithinRange(i) && (this.focusDate = this.viewDate = s, this.setValue(), this.fill(), t.preventDefault());
7000                            break;
7001                        case 38:
7002                        case 40:
7003                            if (!this.o.keyboardNavigation) break;
7004                            e = 38 === t.keyCode ? -1 : 1, t.ctrlKey ? (i = this.moveYear(this.dates.get(-1) || a(), e), s = this.moveYear(r, e), this._trigger("changeYear", this.viewDate)) : t.shiftKey ? (i = this.moveMonth(this.dates.get(-1) || a(), e), s = this.moveMonth(r, e), this._trigger("changeMonth", this.viewDate)) : ((i = new Date(this.dates.get(-1) || a())).setUTCDate(i.getUTCDate() + 7 * e), (s = new Date(r)).setUTCDate(r.getUTCDate() + 7 * e)), this.dateWithinRange(i) && (this.focusDate = this.viewDate = s, this.setValue(), this.fill(), t.preventDefault());
7005                            break;
7006                        case 32:
7007                            break;
7008                        case 13:
7009                            r = this.focusDate || this.dates.get(-1) || this.viewDate, this._toggle_multidate(r), o = !0, this.focusDate = null, this.viewDate = this.dates.get(-1) || this.viewDate, this.setValue(), this.fill(), this.picker.is(":visible") && (t.preventDefault(), this.o.autoclose && this.hide());
7010                            break;
7011                        case 9:
7012                            this.focusDate = null, this.viewDate = this.dates.get(-1) || this.viewDate, this.fill(), this.hide()
7013                    }
7014                    if (o) this.dates.length ? this._trigger("changeDate") : this._trigger("clearDate"), this.isInput ? n = this.element : this.component && (n = this.element.find("input")), n && n.change()
7015                }
7016            },
7017            showMode: function(t) {
7018                t && (this.viewMode = Math.max(this.o.minViewMode, Math.min(2, this.viewMode + t))), this.picker.find(">div").hide().filter(".datepicker-" + M.modes[this.viewMode].clsName).css("display", "block"), this.updateNavArrows()
7019            }
7020        };
7021
7022        function c(t, e) {
7023            this.element = T(t), this.inputs = T.map(e.inputs, function(t) {
7024                return t.jquery ? t[0] : t
7025            }), delete e.inputs, T(this.inputs).datepicker(e).bind("changeDate", T.proxy(this.dateUpdated, this)), this.pickers = T.map(this.inputs, function(t) {
7026                return T(t).data("datepicker")
7027            }), this.updateDates()
7028        }
7029        c.prototype = {
7030            updateDates: function() {
7031                this.dates = T.map(this.pickers, function(t) {
7032                    return t.getUTCDate()
7033                }), this.updateRanges()
7034            },
7035            updateRanges: function() {
7036                var i = T.map(this.dates, function(t) {
7037                    return t.valueOf()
7038                });
7039                T.each(this.pickers, function(t, e) {
7040                    e.setRange(i)
7041                })
7042            },
7043            dateUpdated: function(t) {
7044                if (!this.updating) {
7045                    this.updating = !0;
7046                    var i = T(t.target).data("datepicker").getUTCDate(),
7047                        e = T.inArray(t.target, this.inputs),
7048                        s = this.inputs.length;
7049                    if (-1 !== e) {
7050                        if (T.each(this.pickers, function(t, e) {
7051                                e.getUTCDate() || e.setUTCDate(i)
7052                            }), i < this.dates[e])
7053                            for (; 0 <= e && i < this.dates[e];) this.pickers[e--].setUTCDate(i);
7054                        else if (i > this.dates[e])
7055                            for (; e < s && i > this.dates[e];) this.pickers[e++].setUTCDate(i);
7056                        this.updateDates(), delete this.updating
7057                    }
7058                }
7059            },
7060            remove: function() {
7061                T.map(this.pickers, function(t) {
7062                    t.remove()
7063                }), delete this.element.data().datepicker
7064            }
7065        };
7066        var s = T.fn.datepicker;
7067        T.fn.datepicker = function(a) {
7068            var l, h = Array.apply(null, arguments);
7069            return h.shift(), this.each(function() {
7070                var t = T(this),
7071                    e = t.data("datepicker"),
7072                    i = "object" == typeof a && a;
7073                if (!e) {
7074                    var s = function(t, e) {
7075                            var i = T(t).data(),
7076                                s = {},
7077                                n = new RegExp("^" + e.toLowerCase() + "([A-Z])");
7078
7079                            function o(t, e) {
7080                                return e.toLowerCase()
7081                            }
7082                            for (var r in e = new RegExp("^" + e.toLowerCase()), i) e.test(r) && (s[r.replace(n, o)] = i[r]);
7083                            return s
7084                        }(this, "date"),
7085                        n = function(t) {
7086                            var i = {};
7087                            if (S[t] || (t = t.split("-")[0], S[t])) {
7088                                var s = S[t];
7089                                return T.each(u, function(t, e) {
7090                                    e in s && (i[e] = s[e])
7091                                }), i
7092                            }
7093                        }(T.extend({}, d, s, i).language),
7094                        o = T.extend({}, d, n, s, i);
7095                    if (t.is(".input-daterange") || o.inputs) {
7096                        var r = {
7097                            inputs: o.inputs || t.find('input[name="start"], input[name="end"]').toArray()
7098                        };
7099                        t.data("datepicker", e = new c(this, T.extend(o, r)))
7100                    } else t.data("datepicker", e = new v(this, o))
7101                }
7102                if ("string" == typeof a && "function" == typeof e[a] && (l = e[a].apply(e, h)) !== E) return !1
7103            }), l !== E ? l : this
7104        };
7105        var d = T.fn.datepicker.defaults = {
7106                autoclose: !0,
7107                beforeShowDay: T.noop,
7108                calendarWeeks: !1,
7109                clearBtn: !1,
7110                daysOfWeekDisabled: [],
7111                endDate: 1 / 0,
7112                forceParse: !0,
7113                format: "mm/dd/yyyy",
7114                keyboardNavigation: !0,
7115                language: "en",
7116                minViewMode: 0,
7117                multidate: !1,
7118                multidateSeparator: ",",
7119                orientation: "auto",
7120                rtl: !1,
7121                startDate: -1 / 0,
7122                startView: 0,
7123                todayBtn: !1,
7124                todayHighlight: !1,
7125                weekStart: 0
7126            },
7127            u = T.fn.datepicker.locale_opts = ["format", "rtl", "weekStart"];
7128        T.fn.datepicker.Constructor = v;
7129        var S = T.fn.datepicker.dates = {
7130                en: {
7131                    days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
7132                    daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
7133                    daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"],
7134                    months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "
7134November", "December"],
7135                    monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
7136                    today: "Today",
7137                    clear: "Clear"
7138                }
7139            },
7140            M = {
7141                modes: [{
7142                    clsName: "days",
7143                    navFnc: "Month",
7144                    navStep: 1
7145                }, {
7146                    clsName: "months",
7147                    navFnc: "FullYear",
7148                    navStep: 1
7149                }, {
7150                    clsName: "years",
7151                    navFnc: "FullYear",
7152                    navStep: 10
7153                }],
7154                isLeapYear: function(t) {
7155                    return t % 4 == 0 && t % 100 != 0 || t % 400 == 0
7156                },
7157                getDaysInMonth: function(t, e) {
7158                    return [31, M.isLeapYear(t) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][e]
7159                },
7160                validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,
7161                nonpunctuation: /[^ -\/:-@\[\u3400-\u9fff-`{-~\t\n\r]+/g,
7162                parseFormat: function(t) {
7163                    var e = t.replace(this.validParts, "\0").split("\0"),
7164                        i = t.match(this.validParts);
7165                    if (!e || !e.length || !i || 0 === i.length) throw new Error("Invalid date format.");
7166                    return {
7167                        separators: e,
7168                        parts: i
7169                    }
7170                },
7171                parseDate: function(t, e, i) {
7172                    if (!t) return E;
7173                    if (t instanceof Date) return t;
7174                    "string" == typeof e && (e = M.parseFormat(e));
7175                    var s, n, o, r = /([\-+]\d+)([dmwy])/,
7176                        a = t.match(/([\-+]\d+)([dmwy])/g);
7177                    if (/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(t)) {
7178                        for (t = new Date, o = 0; o < a.length; o++) switch (s = r.exec(a[o]), n = parseInt(s[1]), s[2]) {
7179                            case "d":
7180                                t.setUTCDate(t.getUTCDate() + n);
7181                                break;
7182                            case "m":
7183                                t = v.prototype.moveMonth.call(v.prototype, t, n);
7184                                break;
7185                            case "w":
7186                                t.setUTCDate(t.getUTCDate() + 7 * n);
7187                                break;
7188                            case "y":
7189                                t = v.prototype.moveYear.call(v.prototype, t, n)
7190                        }
7191                        return D(t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate(), 0, 0, 0)
7192                    }
7193                    a = t && t.match(this.nonpunctuation) || [], t = new Date;
7194                    var l, h, c = {},
7195                        d = ["yyyy", "yy", "M", "MM", "m", "mm", "d", "dd"],
7196                        u = {
7197                            yyyy: function(t, e) {
7198                                return t.setUTCFullYear(e)
7199                            },
7200                            yy: function(t, e) {
7201                                return t.setUTCFullYear(2e3 + e)
7202                            },
7203                            m: function(t, e) {
7204                                if (isNaN(t)) return t;
7205                                for (--e; e < 0;) e += 12;
7206                                for (e %= 12, t.setUTCMonth(e); t.getUTCMonth() !== e;) t.setUTCDate(t.getUTCDate() - 1);
7207                                return t
7208                            },
7209                            d: function(t, e) {
7210                                return t.setUTCDate(e)
7211                            }
7212                        };
7213                    u.M = u.MM = u.mm = u.m, u.dd = u.d, t = D(t.getFullYear(), t.getMonth(), t.getDate(), 0, 0, 0);
7214                    var p = e.parts.slice();
7215
7216                    function f() {
7217                        var t = this.slice(0, a[o].length);
7218                        return t === a[o].slice(0, t.length)
7219                    }
7220                    if (a.length !== p.length && (p = T(p).filter(function(t, e) {
7221                            return -1 !== T.inArray(e, d)
7222                        }).toArray()), a.length === p.length) {
7223                        var m, g, _;
7224                        for (o = 0, m = p.length; o < m; o++) {
7225                            if (l = parseInt(a[o], 10), s = p[o], isNaN(l)) switch (s) {
7226                                case "MM":
7227                                    h = T(S[i].months).filter(f), l = T.inArray(h[0], S[i].months) + 1;
7228                                    break;
7229                                case "M":
7230                                    h = T(S[i].monthsShort).filter(f), l = T.inArray(h[0], S[i].monthsShort) + 1
7231                            }
7232                            c[s] = l
7233                        }
7234                        for (o = 0; o < d.length; o++)(_ = d[o]) in c && !isNaN(c[_]) && (g = new Date(t), u[_](g, c[_]), isNaN(g) || (t = g))
7235                    }
7236                    return t
7237                },
7238                formatDate: function(t, e, i) {
7239                    if (!t) return "";
7240                    "string" == typeof e && (e = M.parseFormat(e));
7241                    var s = {
7242                        d: t.getUTCDate(),
7243                        D: S[i].daysShort[t.getUTCDay()],
7244                        DD: S[i].days[t.getUTCDay()],
7245                        m: t.getUTCMonth() + 1,
7246                        M: S[i].monthsShort[t.getUTCMonth()],
7247                        MM: S[i].months[t.getUTCMonth()],
7248                        yy: t.getUTCFullYear().toString().substring(2),
7249                        yyyy: t.getUTCFullYear()
7250                    };
7251                    s.dd = (s.d < 10 ? "0" : "") + s.d, s.mm = (s.m < 10 ? "0" : "") + s.m, t = [];
7252                    for (var n = T.extend([], e.separators), o = 0, r = e.parts.length; o <= r; o++) n.length && t.push(n.shift()), t.push(s[e.parts[o]]);
7253                    return t.join("")
7254                },
7255                headTemplate: '<thead><tr><th class="prev"></th><th colspan="5" class="datepicker-switch"></th><th class="next"></th></tr></thead>',
7256                contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>',
7257                footTemplate: '<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'
7258            };
7259        M.template = '<div class="datepicker"><div class="datepicker-days"><table class=" table-condensed">' + M.headTemplate + "<tbody></tbody>" + M.footTemplate + '</table></div><div class="datepicker-months"><table class="table-condensed">' + M.headTemplate + M.contTemplate + M.footTemplate + '</table></div><div class="datepicker-years"><table class="table-condensed">' + M.headTemplate + M.contTemplate + M.footTemplate + "</table></div></div>", T.fn.datepicker.DPGlobal = M, T.fn.datepicker.noConflict = function() {
7260            return T.fn.datepicker = s, this
7261        }, T(document).on("focus.datepicker.data-api click.datepicker.data-api", '[data-
7261provide="datepicker"]', function(t) {
7262            var e = T(this);
7263            e.data("datepicker") || (t.preventDefault(), e.datepicker("show"))
7264        }), T(function() {
7265            T('[data-provide="datepicker-inline"]').datepicker()
7266        })
7267    }(window.jQuery),
7268    function(f, m, s) {
7269        "use strict";
7270
7271        function o(t, e) {
7272            this.widget = "", this.$element = f(t), this.defaultTime = e.defaultTime, this.disableFocus = e.disableFocus, this.disableMousewheel = e.disableMousewheel, this.isOpen = e.isOpen, this.minuteStep = e.minuteStep, this.modalBackdrop = e.modalBackdrop, this.orientation = e.orientation, this.secondStep = e.secondStep, this.showInputs = e.showInputs, this.showMeridian = e.showMeridian, this.showSeconds = e.showSeconds, this.template = e.template, this.appendWidgetTo = e.appendWidgetTo, this.showWidgetOnAddonClick = e.showWidgetOnAddonClick, this._init()
7273        }
7274        o.prototype = {
7275            constructor: o,
7276            _init: function() {
7277                var t = this;
7278                this.showWidgetOnAddonClick && (this.$element.parent().hasClass("input-append") || this.$element.parent().hasClass("input-prepend")) ? (this.$element.parent(".input-append, .input-prepend").find(".add-on").on({
7279                    "click.timepicker": f.proxy(this.showWidget, this)
7280                }), this.$element.on({
7281                    "focus.timepicker": f.proxy(this.highlightUnit, this),
7282                    "click.timepicker": f.proxy(this.highlightUnit, this),
7283                    "keydown.timepicker": f.proxy(this.elementKeydown, this),
7284                    "blur.timepicker": f.proxy(this.blurElement, this),
7285                    "mousewheel.timepicker DOMMouseScroll.timepicker": f.proxy(this.mousewheel, this)
7286                })) : this.template ? this.$element.on({
7287                    "focus.timepicker": f.proxy(this.showWidget, this),
7288                    "click.timepicker": f.proxy(this.showWidget, this),
7289                    "blur.timepicker": f.proxy(this.blurElement, this),
7290                    "mousewheel.timepicker DOMMouseScroll.timepicker": f.proxy(this.mousewheel, this)
7291                }) : this.$element.on({
7292                    "focus.timepicker": f.proxy(this.highlightUnit, this),
7293                    "click.timepicker": f.proxy(this.highlightUnit, this),
7294                    "keydown.timepicker": f.proxy(this.elementKeydown, this),
7295                    "blur.timepicker": f.proxy(this.blurElement, this),
7296                    "mousewheel.timepicker DOMMouseScroll.timepicker": f.proxy(this.mousewheel, this)
7297                }), !1 !== this.template ? this.$widget = f(this.getTemplate()).on("click", f.proxy(this.widgetClick, this)) : this.$widget = !1, this.showInputs && !1 !== this.$widget && this.$widget.find("input").each(function() {
7298                    f(this).on({
7299                        "click.timepicker": function() {
7300                            f(this).select()
7301                        },
7302                        "keydown.timepicker": f.proxy(t.widgetKeydown, t),
7303                        "keyup.timepicker": f.proxy(t.widgetKeyup, t)
7304                    })
7305                }), this.setDefaultTime(this.defaultTime)
7306            },
7307            blurElement: function() {
7308                this.highlightedUnit = null, this.updateFromElementVal()
7309            },
7310            clear: function() {
7311                this.hour = "", this.minute = "", this.second = "", this.meridian = "", this.$element.val("")
7312            },
7313            decrementHour: function() {
7314                if (this.showMeridian)
7315                    if (1 === this.hour) this.hour = 12;
7316                    else {
7317                        if (12 === this.hour) return this.hour--, this.toggleMeridian();
7318                        if (0 === this.hour) return this.hour = 11, this.toggleMeridian();
7319                        this.hour--
7320                    } else this.hour <= 0 ? this.hour = 23 : this.hour--
7321            },
7322            decrementMinute: function(t) {
7323                var e;
7324                (e = t ? this.minute - t : this.minute - this.minuteStep) < 0 ? (this.decrementHour(), this.minute = e + 60) : this.minute = e
7325            },
7326            decrementSecond: function() {
7327                var t = this.second - this.secondStep;
7328                t < 0 ? (this.decrementMinute(!0), this.second = 60 + t) : this.second = t
7329            },
7330            elementKeydown: function(t) {
7331                switch (t.keyCode) {
7332                    case 9:
7333                    case 27:
7334                        this.updateFromElementVal();
7335                        break;
7336                    case 37:
7337                        t.preventDefault(), this.highlightPrevUnit();
7338                        break;
7339                    case 38:
7340                        switch (t.preventDefault(), this.highlightedUnit) {
7341                            case "hour":
7342                                this.incrementHour(), this.highlightHour();
7343                                break;
7344                            case "minute":
7345                                this.incrementMinute(), this.highlightMinute();
7346                                break;
7347                            case "second":
7348                                this.incrementSecond(), this.highlightSecond();
7349                                break;
7350                            case "meridian":
7351                                this.toggleMeridian(), this.highlightMeridian()
7352                        }
7353                        this.update();
7354                        break;
7355                    case 39:
7356                        t.preventDefault(), this.highlightNextUnit();
7357                        break;
7358                    case 40:
7359                        switch (t.preventDefault(), this.highlightedUnit) {
7360                            case "hour":
7361                                this.decrementHour(), this.highlightHour();
7362                                break;
7363                            case "minute":
7364                                this.decrementMinute(), this.highlightMinute();
7365                                break;
7366                            case "second":
7367                                this.decrementSecond(), this.highlightSecond();
7368                                break;
7369                            case "meridian":
7370                                this.toggleMeridian(), this.highlightMeridian()
7371                        }
7372                        this.update()
7373                }
7374            },
7375            getCursorPosition: function() {
7376                var t = this.$element.get(0);
7377                if ("selectionStart" in t) return t.selectionStart;
7378                if (s.selection) {
7379                    t.focus();
7380                    var e = s.selection.createRange(),
7381                        i = s.selection.createRange().text.length;
7382                    return e.moveStart("character", -t.value.length), e.text.length - i
7383                }
7384            },
7385            getTemplate: function() {
7386                var t, e, i, s, n, o;
7387                switch (n = this.showInputs ? (e = '<input type="text" class="bootstrap-timepicker-hour" maxlength="2"/>', i = '<input type="text" class="bootstrap-timepicker-minute" maxlength="2"/>', s = '<input type="text" class="bootstrap-timepicker-second" maxlength="2"/>', '<input type="text" class="bootstrap-timepicker-meridian" maxlength="2"/>') : (e = '<span class="bootstrap-timepicker-hour"></span>', i = '<span class="bootstrap-timepicker-minute"></span>', s = '<span class="bootstrap-timepicker-second"></span>', '<span class="bootstrap-timepicker-meridian"></span>'), o = '<table><tr><td><a href="#" data-action="incrementHour"><i class="icon-up-open-big"></i></a></td><td class="separator">&nbsp;</td><td><a href="#" data-action="incrementMinute"><i class="icon-up-open-big"></i></a></td>' + (this.showSeconds ? '<td class="separator">&nbsp;</td><td><a href="#" data-action="incrementSecond"><i class="icon-up-open-big"></i></a></td>' : "") + (this.showMeridian ? '<td class="separator">&nbsp;</td><td class="meridian-column"><a href="#" data-action="toggleMeridian"><i class="icon-up-open-big"></i></a></td>' : "") + "</tr><tr><td>" + e + '</td> <td class="separator">:</td><td>' + i + "</td> " + (this.showSeconds ? '<td class="separator">:</td><td>' + s + "</td>" : "") + (this.showMeridian ? '<td class="separator">&nbsp;</td><td>' + n + "</td>" : "") + '</tr><tr><td><a href="#" data-action="decrementHour"><i class="icon-down-open-big"></i></a></td><td class="separator"></td><td><a href="#" data-action="decrementMinute"><i class="icon-down-open-big"></i></a></td>' + (this.showSeconds ? '<td class="separator">&nbsp;</td><td><a href="#" data-action="decrementSecond"><i class="icon-down-open-big"></i></a></td>' : "") + (this.showMeridian ? '<td class="separator">&nbsp;</td><td><a href="#" data-action="toggleMeridian"><i class="icon-down-open-big"></i></a></td>' : "") + "</tr></table>", this.template) {
7388                    case "modal":
7389                        t = '<div class="bootstrap-timepicker-widget modal hide fade in" data-backdrop="' + (this.modalBackdrop ? "true" : "false") + '"><div class="modal-header"><a href="#" class="close" data-dismiss="modal">
7389×</a><h3>Pick a Time</h3></div><div class="modal-content">' + o + '</div><div class="modal-footer"><a href="#" class="btn btn-primary" data-dismiss="modal">OK</a></div></div>';
7390                        break;
7391                    case "dropdown":
7392                        t = '<div class="bootstrap-timepicker-widget dropdown-menu">' + o + "</div>"
7393                }
7394                return t
7395            },
7396            getTime: function() {
7397                return "" === this.hour ? "" : this.hour + ":" + (1 === this.minute.toString().length ? "0" + this.minute : this.minute) + (this.showSeconds ? ":" + (1 === this.second.toString().length ? "0" + this.second : this.second) : "") + (this.showMeridian ? " " + this.meridian : "")
7398            },
7399            hideWidget: function() {
7400                !1 !== this.isOpen && (this.$element.trigger({
7401                    type: "hide.timepicker",
7402                    time: {
7403                        value: this.getTime(),
7404                        hours: this.hour,
7405                        minutes: this.minute,
7406                        seconds: this.second,
7407                        meridian: this.meridian
7408                    }
7409                }), "modal" === this.template && this.$widget.modal ? this.$widget.modal("hide") : this.$widget.removeClass("open"), f(s).off("mousedown.timepicker, touchend.timepicker"), this.isOpen = !1, this.$widget.detach())
7410            },
7411            highlightUnit: function() {
7412                this.position = this.getCursorPosition(), 0 <= this.position && this.position <= 2 ? this.highlightHour() : 3 <= this.position && this.position <= 5 ? this.highlightMinute() : 6 <= this.position && this.position <= 8 ? this.showSeconds ? this.highlightSecond() : this.highlightMeridian() : 9 <= this.position && this.position <= 11 && this.highlightMeridian()
7413            },
7414            highlightNextUnit: function() {
7415                switch (this.highlightedUnit) {
7416                    case "hour":
7417                        this.highlightMinute();
7418                        break;
7419                    case "minute":
7420                        this.showSeconds ? this.highlightSecond() : this.showMeridian ? this.highlightMeridian() : this.highlightHour();
7421                        break;
7422                    case "second":
7423                        this.showMeridian ? this.highlightMeridian() : this.highlightHour();
7424                        break;
7425                    case "meridian":
7426                        this.highlightHour()
7427                }
7428            },
7429            highlightPrevUnit: function() {
7430                switch (this.highlightedUnit) {
7431                    case "hour":
7432                        this.showMeridian ? this.highlightMeridian() : this.showSeconds ? this.highlightSecond() : this.highlightMinute();
7433                        break;
7434                    case "minute":
7435                        this.highlightHour();
7436                        break;
7437                    case "second":
7438                        this.highlightMinute();
7439                        break;
7440                    case "meridian":
7441                        this.showSeconds ? this.highlightSecond() : this.highlightMinute()
7442                }
7443            },
7444            highlightHour: function() {
7445                var t = this.$element.get(0),
7446                    e = this;
7447                this.highlightedUnit = "hour", t.setSelectionRange && setTimeout(function() {
7448                    e.hour < 10 ? t.setSelectionRange(0, 1) : t.setSelectionRange(0, 2)
7449                }, 0)
7450            },
7451            highlightMinute: function() {
7452                var t = this.$element.get(0),
7453                    e = this;
7454                this.highlightedUnit = "minute", t.setSelectionRange && setTimeout(function() {
7455                    e.hour < 10 ? t.setSelectionRange(2, 4) : t.setSelectionRange(3, 5)
7456                }, 0)
7457            },
7458            highlightSecond: function() {
7459                var t = this.$element.get(0),
7460                    e = this;
7461                this.highlightedUnit = "second", t.setSelectionRange && setTimeout(function() {
7462                    e.hour < 10 ? t.setSelectionRange(5, 7) : t.setSelectionRange(6, 8)
7463                }, 0)
7464            },
7465            highlightMeridian: function() {
7466                var t = this.$element.get(0),
7467                    e = this;
7468                this.highlightedUnit = "meridian", t.setSelectionRange && (this.showSeconds ? setTimeout(function() {
7469                    e.hour < 10 ? t.setSelectionRange(8, 10) : t.setSelectionRange(9, 11)
7470                }, 0) : setTimeout(function() {
7471                    e.hour < 10 ? t.setSelectionRange(5, 7) : t.setSelectionRange(6, 8)
7472                }, 0))
7473            },
7474            incrementHour: function() {
7475                if (this.showMeridian) {
7476                    if (11 === this.hour) return this.hour++, this.toggleMeridian();
7477                    12 === this.hour && (this.hour = 0)
7478                }
7479                23 !== this.hour ? this.hour++ : this.hour = 0
7480            },
7481            incrementMinute: function(t) {
7482                var e;
7483                59 < (e = t ? this.minute + t : this.minute + this.minuteStep - this.minute % this.minuteStep) ? (this.incrementHour(), this.minute = e - 60) : this.minute = e
7484            },
7485            incrementSecond: function() {
7486                var t = this.second + this.secondStep - this.second % this.secondStep;
7487                59 < t ? (this.incrementMinute(!0), this.second = t - 60) : this.second = t
7488            },
7489            mousewheel: function(t) {
7490                if (!this.disableMousewheel) {
7491                    t.preventDefault(), t.stopPropagation();
7492                    var e = t.originalEvent.wheelDelta || -t.originalEvent.detail,
7493                        i = null;
7494                    switch ("mousewheel" === t.type ? i = -1 * t.originalEvent.wheelDelta : "DOMMouseScroll" === t.type && (i = 40 * t.originalEvent.detail), i && (t.preventDefault(), f(this).scrollTop(i + f(this).scrollTop())), this.highlightedUnit) {
7495                        case "minute":
7496                            0 < e ? this.incrementMinute() : this.decrementMinute(), this.highlightMinute();
7497                            break;
7498                        case "second":
7499                            0 < e ? this.incrementSecond() : this.decrementSecond(), this.highlightSecond();
7500                            break;
7501                        case "meridian":
7502                            this.toggleMeridian(), this.highlightMeridian();
7503                            break;
7504                        default:
7505                            0 < e ? this.incrementHour() : this.decrementHour(), this.highlightHour()
7506                    }
7507                    return !1
7508                }
7509            },
7510            place: function() {
7511                if (!this.isInline) {
7512                    var t = this.$widget.outerWidth(),
7513                        e = this.$widget.outerHeight(),
7514                        i = f(m).width(),
7515                        s = f(m).height(),
7516                        n = f(m).scrollTop(),
7517                        o = parseInt(this.$element.parents().filter(function() {}).first().css("z-index"), 10) + 10,
7518                        r = this.component ? this.component.parent().offset() : this.$element.offset(),
7519                        a = this.component ? this.component.outerHeight(!0) : this.$element.outerHeight(!1),
7520                        l = this.component ? this.component.outerWidth(!0) : this.$element.outerWidth(!1),
7521                        h = r.left,
7522                        c = r.top;
7523                    this.$widget.removeClass("timepicker-orient-top timepicker-orient-bottom timepicker-orient-right timepicker-orient-left"), "auto" !== this.orientation.x ? (this.picker.addClass("datepicker-orient-" + this.orientation.x), "right" === this.orientation.x && (h -= t - l)) : (this.$widget.addClass("timepicker-orient-left"), r.left < 0 ? h -= r.left - 10 : r.left + t > i && (h = i - t - 10));
7524                    var d, u, p = this.orientation.y;
7525                    "auto" === p && (d = -n + r.top - e, u = n + s - (r.top + a + e), p = Math.max(d, u) === u ? "top" : "bottom"), this.$widget.addClass("timepicker-orient-" + p), "top" === p ? c += a : c -= e + parseInt(this.$widget.css("padding-top"), 10), this.$widget.css({
7526                        top: c,
7527                        left: h,
7528                        zIndex: o
7529                    })
7530                }
7531            },
7532            remove: function() {
7533                f("document").off(".timepicker"), this.$widget && this.$widget.remove(), delete this.$element.data().timepicker
7534            },
7535            setDefaultTime: function(t) {
7536                if (this.$element.val()) this.updateFromElementVal();
7537                else if ("current" === t) {
7538                    var e = new Date,
7539                        i = e.getHours(),
7540                        s = e.getMinutes(),
7541                        n = e.getSeconds(),
7542                        o = "AM";
7543                    0 !== n && 60 === (n = Math.ceil(e.getSeconds() / this.secondStep) * this.secondStep) && (s += 1, n = 0), 0 !== s && 60 === (s = Math.ceil(e.getMinutes() / this.minuteStep) * this.minuteStep) && (i += 1, s = 0), this.showMeridian && (0 === i ? i = 12 : o = 12 <= i ? (12 < i && (i -= 12), "PM") : "AM"), this.hour = i, this.minute = s, this.second = n, this.meridian = o, this.update()
7544                } else !1 === t ? (this.hour = 0, this.minute = 0, this.second = 0, this.meridian = "AM") : this.setTime(t)
7545            },
7546            setTime: function(t, e) {
7547                var i, s, n, o, r;
7548                t ? ("object" == typeof t && t.getMonth ? (s = t.getHours(), n = t.getMinutes(), o = t.getSeconds(), this.showMeridian && (r = "AM", 12 < s && (r = "PM", s %= 12), 12 === s && (r = "PM"))) : (r = null !== t.match(/p/i) ? "PM" : "AM", s = (i = (t = t.replace(/[^0-9\:]/g, "")).split(":"))[0] ? i[0].toString() : i.toString(), n = i[1] ? i[1].toString() : "", o = i[2] ? i[2].toString() : "", 4 < s.length && (o = s.substr(4, 2)), 2 < s.length && (n = s.substr(2, 2), s = s.substr(0, 2)), 2 < n.length && (o = n.substr(2, 2), n = n.substr(0, 2)), 2 < o.length && (o = o.substr(2, 2)), s = parseInt(s, 10), n = parseInt(n, 10), o = parseInt(o, 10), isNaN(s) && (s = 0), isNaN(n) && (n = 0), isNaN(o) && (o = 0), this.showMeridian ? s < 1 ? s = 1 : 12 < s && (s = 12) : (24 <= s ? s = 23 : s < 0 && (s = 0), s < 13 && "PM" === r && (s += 12)), n < 0 ? n = 0 : 60 <= n && (n = 59), this.showSeconds && (isNaN(o) || o < 0 ? o = 0 : 60 <= o && (o = 59))), this.hour = s, this.minute = n, this.second = o, this.meridian = r, this.update(e)) : this.clear()
7549            },
7550            showWidget: function() {
7551                if (!this.isOpen && !this.$element.is(":disabled")) {
7552                    this.$widget.appendTo(this.appendWidgetTo);
7553                    var e = this;
7554                    f(s).on("mousedown.timepicker, touchend.timepicker", function(t) {
7555                        e.$element.parent().find(t.target).length || e.$widget.is(t.target) || e.$widget.find(t.target).length || e.hideWidget()
7556                    }), this.$element.trigger({
7557                        type: "show.timepicker",
7558                        time: {
7559                            value: this.getTime(),
7560                            hours: this.hour,
7561                            minutes: this.minute,
7562                            seconds: this.second,
7563                            meridian: this.meridian
7564                        }
7565                    }), this.place(), this.disableFocus && this.$element.blur(), "" === this.hour && (this.defaultTime ? this.setDefaultTime(this.defaultTime) : this.setTime("0:0:0")), "modal" === this.template && this.$widget.modal ? this.$widget.modal("show").on("hidden", f.proxy(this.hideWidget, this)) : !1 === this.isOpen && this.$widget.addClass("open"), this.isOpen = !0
7566                }
7567            },
7568            toggleMeridian: function() {
7569                this.meridian = "AM" === this.meridian ? "PM" : "AM"
7570            },
7571            update: function(t) {
7572                this.updateElement(), t || this.updateWidget(), this.$element.trigger({
7573                    type: "changeTime.timepicker",
7574                    time: {
7575                        value: this.getTime(),
7576                        hours: this.hour,
7577                        minutes: this.minute,
7578                        seconds: this.second,
7579                        meridian: this.meridian
7580                    }
7581                })
7582            },
7583            updateElement: function() {
7584                this.$element.val(this.getTime()).change()
7585            },
7586            updateFromElementVal: function() {
7587                this.setTime(this.$element.val())
7588            },
7589            updateWidget: function() {
7590                if (!1 !== this.$widget) {
7591                    var t = this.hour,
7592                        e = 1 === this.minute.toString().length ? "0" + this.minute : this.minute,
7593                        i = 1 === this.second.toString().length ? "0" + this.second : this.second;
7594                    this.showInputs ? (this.$widget.find("input.bootstrap-timepicker-hour").val(t), this.$widget.find("input.bootstrap-timepicker-minute").val(e), this.showSeconds && this.$widget.find("input.bootstrap-timepicker-second").val(i), this.showMeridian && this.$widget.find("input.bootstrap-timepicker-meridian").val(this.meridian)) : (this.$widget.find("span.bootstrap-timepicker-hour").text(t), this.$widget.find("span.bootstrap-timepicker-minute").text(e), this.showSeconds && this.$widget.find("span.bootstrap-timepicker-second").text(i), this.showMeridian && this.$widget.find("span.bootstrap-timepicker-meridian").text(this.meridian))
7595                }
7596            },
7597            updateFromWidgetInputs: function() {
7598                if (!1 !== this.$widget) {
7599                    var t = this.$widget.find("input.bootstrap-timepicker-hour").val() + ":" + this.$widget.find("input.bootstrap-timepicker-minute").val() + (this.showSeconds ? ":" + this.$widget.find("input.bootstrap-timepicker-second").val() : "") + (this.showMeridian ? this.$widget.find("input.bootstrap-timepicker-meridian").val() : "");
7600                    this.setTime(t, !0)
7601                }
7602            },
7603            widgetClick: function(t) {
7604                t.stopPropagation(), t.preventDefault();
7605                var e = f(t.target),
7606                    i = e.closest("a").data("action");
7607                i && this[i](), this.update(), e.is("input") && e.get(0).setSelectionRange(0, 2)
7608            },
7609            widgetKeydown: function(t) {
7610                var e = f(t.target),
7611                    i = e.attr("class").replace("bootstrap-timepicker-", "");
7612                switch (t.keyCode) {
7613                    case 9:
7614                        if (this.showMeridian && "meridian" === i || this.showSeconds && "second" === i || !this.showMeridian && !this.showSeconds && "minute" === i) return this.hideWidget();
7615                        break;
7616                    case 27:
7617                        this.hideWidget();
7618                        break;
7619                    case 38:
7620                        switch (t.preventDefault(), i) {
7621                            case "hour":
7622                                this.incrementHour();
7623                                break;
7624                            case "minute":
7625                                this.incrementMinute();
7626                                break;
7627                            case "second":
7628                                this.incrementSecond();
7629                                break;
7630                            case "meridian":
7631                                this.toggleMeridian()
7632                        }
7633                        this.setTime(this.getTime()), e.get(0).setSelectionRange(0, 2);
7634                        break;
7635                    case 40:
7636                        switch (t.preventDefault(), i) {
7637                            case "hour":
7638                                this.decrementHour();
7639                                break;
7640                            case "minute":
7641                                this.decrementMinute();
7642                                break;
7643                            case "second":
7644                                this.decrementSecond();
7645                                break;
7646                            case "meridian":
7647                                this.toggleMeridian()
7648                        }
7649                        this.setTime(this.getTime()), e.get(0).setSelectionRange(0, 2)
7650                }
7651            },
7652            widgetKeyup: function(t) {
7653                (65 === t.keyCode || 77 === t.keyCode || 80 === t.keyCode || 46 === t.keyCode || 8 === t.keyCode || 46 <= t.keyCode && t.keyCode <= 57) && this.updateFromWidgetInputs()
7654            }
7655        }, f.fn.timepicker = function(s) {
7656            var n = Array.apply(null, arguments);
7657            return n.shift(), this.each(function() {
7658                var t = f(this),
7659                    e = t.data("timepicker"),
7660                    i = "object" == typeof s && s;
7661                e || t.data("timepicker", e = new o(this, f.extend({}, f.fn.timepicker.defaults, i, f(this).data()))), "string" == typeof s && e[s].apply(e, n)
7662            })
7663        }, f.fn.timepicker.defaults = {
7664            defaultTime: "current",
7665            disableFocus: !1,
7666            disableMousewheel: !1,
7667            isOpen: !1,
7668            minuteStep: 15,
7669            modalBackdrop: !1,
7670            orientation: {
7671                x: "auto",
7672                y: "auto"
7673            },
7674            secondStep: 15,
7675            showSeconds: !1,
7676            showInputs: !0,
7677            showMeridian: !0,
7678            template: "dropdown",
7679            appendWidgetTo: "body",
7680            showWidgetOnAddonClick: !0
7681        }, f.fn.timepicker.Constructor = o
7682    }(jQuery, window, document),
7683    function(w) {
7684        var b = "iCheck",
7685            k = b + "-helper",
7686            x = "checkbox",
7687            C = "radio",
7688            T = "checked",
7689            p = "un" + T,
7690            E = "disabled",
7691            f = "determinate",
7692            D = "in" + f,
7693            S = "update",
7694            M = "type",
7695            I = "click",
7696            A = "touchbegin.i touchend.i",
7697            $ = "addClass",
7698            O = "removeClass",
7699            N = "trigger",
7700            P = "label",
7701            m = "cursor",
7702            F = /ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);
7703
7704        function H(t, e, i) {
7705            var s = t[0],
7706                n = /er/.test(i) ? D : /bl/.test(i) ? E : T,
7707                o = i == S ? {
7708                    checked: s[T],
7709                    disabled: s[E],
7710                    indeterminate: "true" == t.attr(D) || "false" == t.attr(f)
7711                } : s[n];
7712            if (/^(ch|di|in)/.test(i) && !o) j(t, n);
7713            else if (/^(un|en|de)/.test(i) && o) L(t, n);
7714            else if (i == S)
7715                for (var r in o)(o[r] ? j : L)(t, r, !0);
7716            else e && "toggle" != i || (e || t[N]("ifClicked"), o ? s[M] !== C && L(t, n) : j(t, n))
7717        }
7718
7719        function j(t, e, i) {
7720            var s = t[0],
7721                n = t.parent(),
7722                o = e == T,
7723                r = e == D,
7724                a = e == E,
7725                l = r ? f : o ? p : "enabled",
7726                h = g(t, l + _(s[M])),
7727                c = g(t, e + _(s[M]));
7728            if (!0 !== s[e]) {
7729                if (!i && e == T && s[M] == C && s.name) {
7730                    var d = t.closest("form"),
7731                        u = 'input[name="' + s.name + '"]';
7732                    (u = d.length ? d.find(u) : w(u)).each(function() {
7733                        this !== s && w(this).data(b) && L(w(this), e)
7734                    })
7735                }
7736                r ? (s[e] = !0, s[T] && L(t, T, "force")) : (i || (s[e] = !0), o && s[D] && L(t, D, !1)), v(t, o, e, i)
7737            }
7738            s[E] && g(t, m, !0) && n.find("." + k).css(m, "default"), n[$](c || g(t, e) || ""), n.attr("role") && !r && n.attr("aria-" + (a ? E : T), "true"), n[O](h || g(t, l) || "")
7739        }
7740
7741        function L(t, e, i) {
7742            var s = t[0],
7743                n = t.parent(),
7744                o = e == T,
7745                r = e == D,
7746                a = e == E,
7747                l = r ? f : o ? p : "enabled",
7748                h = g(t, l + _(s[M])),
7749                c = g(t, e + _(s[M]));
7750            !1 !== s[e] && (!r && i && "force" != i || (s[e] = !1), v(t, o, l, i)), !s[E] && g(t, m, !0) && n.find("." + k).css(m, "pointer"), n[O](c || g(t, e) || ""), n.attr("role") && !r && n.attr("aria-" + (a ? E : T), "false"), n[$](h || g(t, l) || "")
7751        }
7752
7753        function z(t, e) {
7754            t.data(b) && (t.parent().html(t.attr("style", t.data(b).s || "")), e && t[N](e), t.off(".i").unwrap(), w(P + '[for="' + t[0].id + '"]').add(t.closest(P)).off(".i"))
7755        }
7756
7757        function g(t, e, i) {
7758            if (t.data(b)) return t.data(b).o[e + (i ? "" : "Class")]
7759        }
7760
7761        function _(t) {
7762            return t.charAt(0).toUpperCase() + t.slice(1)
7763        }
7764
7765        function v(t, e, i, s) {
7766            s || (e && t[N]("ifToggled"), t[N]("ifChanged")[N]("if" + _(i)))
7767        }
7768        w.fn[b] = function(e, i) {
7769            function t(t) {
7770                t.each(function() {
7771                    var t = w(this);
7772                    n = t.is(s) ? n.add(t) : n.add(t.find(s))
7773                })
7774            }
7775            var s = 'input[type="' + x + '"], input[type="' + C + '"]',
7776                n = w();
7777            if (/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(e)) return e = e.toLowerCase(), t(this), n.each(function() {
7778                var t = w(this);
7779                "destroy" == e ? z(t, "ifDestroyed") : H(t, !0, e), w.isFunction(i) && i()
7780            });
7781            if ("object" != typeof e && e) return this;
7782            var p = w.extend({
7783                    checkedClass: T,
7784                    disabledClass: E,
7785                    indeterminateClass: D,
7786                    labelHover: !0
7787                }, e),
7788                o = p.handle,
7789                f = p.hoverClass || "hover",
7790                m = p.focusClass || "focus",
7791                g = p.activeClass || "active",
7792                _ = !!p.labelHover,
7793                v = p.labelHoverClass || "hover",
7794                y = 0 | ("" + p.increaseArea).replace("%", "");
7795            return o != x && o != C || (s = 'input[type="' + o + '"]'), y < -50 && (y = -50), t(this), n.each(function() {
7796                var s = w(this);
7797                z(s);
7798                var t, n = this,
7799                    e = n.id,
7800                    i = -y + "%",
7801                    o = 100 + 2 * y + "%",
7802                    r = {
7803                        position: "absolute",
7804                        top: i,
7805                        left: i,
7806                        display: "block",
7807                        width: o,
7808                        height: o,
7809                        margin: 0,
7810                        padding: 0,
7811                        background: "#fff",
7812                        border: 0,
7813                        opacity: 0
7814                    },
7815                    a = F ? {
7816                        position: "absolute",
7817                        visibility: "hidden"
7818                    } : y ? r : {
7819                        position: "absolute",
7820                        opacity: 0
7821                    },
7822                    l = n[M] == x ? p.checkboxClass || "i" + x : p.radioClass || "i" + C,
7823                    h = w(P + '[for="' + e + '"]').add(s.closest(P)),
7824                    c = !!p.aria,
7825                    d = b + "-" + Math.random().toString(36).substr(2, 6),
7826                    u = '<div class="' + l + '" ' + (c ? 'role="' + n[M] + '" ' : "");
7827                c && h.each(function() {
7828                    u += 'aria-labelledby="', this.id ? u += this.id : (this.id = d, u += d), u += '"'
7829                }), u = s.wrap(u + "/>")[N]("ifCreated").parent().append(p.insert), t = w('<ins class="' + k + '"/>').css(r).appendTo(u), s.data(b, {
7830                    o: p,
7831                    s: s.attr("style")
7832                }
7832).css(a), p.inheritClass && u[$](n.className || ""), p.inheritID && e && u.attr("id", b + "-" + e), "static" == u.css("position") && u.css("position", "relative"), H(s, !0, S), h.length && h.on(I + ".i mouseover.i mouseout.i " + A, function(t) {
7833                    var e = t[M],
7834                        i = w(this);
7835                    if (!n[E]) {
7836                        if (e == I) {
7837                            if (w(t.target).is("a")) return;
7838                            H(s, !1, !0)
7839                        } else _ && (/ut|nd/.test(e) ? (u[O](f), i[O](v)) : (u[$](f), i[$](v)));
7840                        t.stopPropagation()
7841                    }
7842                }), s.on(I + ".i focus.i blur.i keyup.i keydown.i keypress.i", function(t) {
7843                    var e = t[M],
7844                        i = t.keyCode;
7845                    return e != I && ("keydown" == e && 32 == i ? (n[M] == C && n[T] || (n[T] ? L : j)(s, T), !1) : void("keyup" == e && n[M] == C ? n[T] || j(s, T) : /us|ur/.test(e) && u["blur" == e ? O : $](m)))
7846                }), t.on(I + " mousedown mouseup mouseover mouseout " + A, function(t) {
7847                    var e = t[M],
7848                        i = /wn|up/.test(e) ? g : f;
7849                    n[E] || (e == I ? H(s, !1, !0) : (/wn|er|in/.test(e) ? u[$](i) : u[O](i + " " + g), h.length && _ && i == f && h[/ut|nd/.test(e) ? O : $](v)), t.stopPropagation())
7850                })
7851            })
7852        }
7853    }(window.jQuery || window.Zepto);

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.