/*! Swiper 6.4.5 */
!function(e, t) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).Swiper = t()
}(this, (function() {
    "use strict";
    function e(e, t) {
        for (var a = 0; a < t.length; a++) {
            var i = t[a];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(e, i.key, i)
        }
    }
    function t() {
        return (t = Object.assign || function(e) {
            for (var t = 1; t < arguments.length; t++) {
                var a = arguments[t];
                for (var i in a)
                    Object.prototype.hasOwnProperty.call(a, i) && (e[i] = a[i])
            }
            return e
        }
        ).apply(this, arguments)
    }
    function a(e) {
        return null !== e && "object" == typeof e && "constructor"in e && e.constructor === Object
    }
    function i(e, t) {
        void 0 === e && (e = {}),
        void 0 === t && (t = {}),
        Object.keys(t).forEach((function(s) {
            void 0 === e[s] ? e[s] = t[s] : a(t[s]) && a(e[s]) && Object.keys(t[s]).length > 0 && i(e[s], t[s])
        }
        ))
    }
    var s = {
        body: {},
        addEventListener: function() {},
        removeEventListener: function() {},
        activeElement: {
            blur: function() {},
            nodeName: ""
        },
        querySelector: function() {
            return null
        },
        querySelectorAll: function() {
            return []
        },
        getElementById: function() {
            return null
        },
        createEvent: function() {
            return {
                initEvent: function() {}
            }
        },
        createElement: function() {
            return {
                children: [],
                childNodes: [],
                style: {},
                setAttribute: function() {},
                getElementsByTagName: function() {
                    return []
                }
            }
        },
        createElementNS: function() {
            return {}
        },
        importNode: function() {
            return null
        },
        location: {
            hash: "",
            host: "",
            hostname: "",
            href: "",
            origin: "",
            pathname: "",
            protocol: "",
            search: ""
        }
    };
    function r() {
        var e = "undefined" != typeof document ? document : {};
        return i(e, s),
        e
    }
    var n = {
        document: s,
        navigator: {
            userAgent: ""
        },
        location: {
            hash: "",
            host: "",
            hostname: "",
            href: "",
            origin: "",
            pathname: "",
            protocol: "",
            search: ""
        },
        history: {
            replaceState: function() {},
            pushState: function() {},
            go: function() {},
            back: function() {}
        },
        CustomEvent: function() {
            return this
        },
        addEventListener: function() {},
        removeEventListener: function() {},
        getComputedStyle: function() {
            return {
                getPropertyValue: function() {
                    return ""
                }
            }
        },
        Image: function() {},
        Date: function() {},
        screen: {},
        setTimeout: function() {},
        clearTimeout: function() {},
        matchMedia: function() {
            return {}
        },
        requestAnimationFrame: function(e) {
            return "undefined" == typeof setTimeout ? (e(),
            null) : setTimeout(e, 0)
        },
        cancelAnimationFrame: function(e) {
            "undefined" != typeof setTimeout && clearTimeout(e)
        }
    };
    function l() {
        var e = "undefined" != typeof window ? window : {};
        return i(e, n),
        e
    }
    function o(e) {
        return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) {
            return e.__proto__ || Object.getPrototypeOf(e)
        }
        )(e)
    }
    function d(e, t) {
        return (d = Object.setPrototypeOf || function(e, t) {
            return e.__proto__ = t,
            e
        }
        )(e, t)
    }
    function p() {
        if ("undefined" == typeof Reflect || !Reflect.construct)
            return !1;
        if (Reflect.construct.sham)
            return !1;
        if ("function" == typeof Proxy)
            return !0;
        try {
            return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}
            ))),
            !0
        } catch (e) {
            return !1
        }
    }
    function u(e, t, a) {
        return (u = p() ? Reflect.construct : function(e, t, a) {
            var i = [null];
            i.push.apply(i, t);
            var s = new (Function.bind.apply(e, i));
            return a && d(s, a.prototype),
            s
        }
        ).apply(null, arguments)
    }
    function c(e) {
        var t = "function" == typeof Map ? new Map : void 0;
        return (c = function(e) {
            if (null === e || (a = e,
            -1 === Function.toString.call(a).indexOf("[native code]")))
                return e;
            var a;
            if ("function" != typeof e)
                throw new TypeError("Super expression must either be null or a function");
            if (void 0 !== t) {
                if (t.has(e))
                    return t.get(e);
                t.set(e, i)
            }
            function i() {
                return u(e, arguments, o(this).constructor)
            }
            return i.prototype = Object.create(e.prototype, {
                constructor: {
                    value: i,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }),
            d(i, e)
        }
        )(e)
    }
    var h = function(e) {
        var t, a;
        function i(t) {
            var a, i, s;
            return a = e.call.apply(e, [this].concat(t)) || this,
            i = function(e) {
                if (void 0 === e)
                    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return e
            }(a),
            s = i.__proto__,
            Object.defineProperty(i, "__proto__", {
                get: function() {
                    return s
                },
                set: function(e) {
                    s.__proto__ = e
                }
            }),
            a
        }
        return a = e,
        (t = i).prototype = Object.create(a.prototype),
        t.prototype.constructor = t,
        t.__proto__ = a,
        i
    }(c(Array));
    function v(e) {
        void 0 === e && (e = []);
        var t = [];
        return e.forEach((function(e) {
            Array.isArray(e) ? t.push.apply(t, v(e)) : t.push(e)
        }
        )),
        t
    }
    function f(e, t) {
        return Array.prototype.filter.call(e, t)
    }
    function m(e, t) {
        var a = l()
          , i = r()
          , s = [];
        if (!t && e instanceof h)
            return e;
        if (!e)
            return new h(s);
        if ("string" == typeof e) {
            var n = e.trim();
            if (n.indexOf("<") >= 0 && n.indexOf(">") >= 0) {
                var o = "div";
                0 === n.indexOf("<li") && (o = "ul"),
                0 === n.indexOf("<tr") && (o = "tbody"),
                0 !== n.indexOf("<td") && 0 !== n.indexOf("<th") || (o = "tr"),
                0 === n.indexOf("<tbody") && (o = "table"),
                0 === n.indexOf("<option") && (o = "select");
                var d = i.createElement(o);
                d.innerHTML = n;
                for (var p = 0; p < d.childNodes.length; p += 1)
                    s.push(d.childNodes[p])
            } else
                s = function(e, t) {
                    if ("string" != typeof e)
                        return [e];
                    for (var a = [], i = t.querySelectorAll(e), s = 0; s < i.length; s += 1)
                        a.push(i[s]);
                    return a
                }(e.trim(), t || i)
        } else if (e.nodeType || e === a || e === i)
            s.push(e);
        else if (Array.isArray(e)) {
            if (e instanceof h)
                return e;
            s = e
        }
        return new h(function(e) {
            for (var t = [], a = 0; a < e.length; a += 1)
                -1 === t.indexOf(e[a]) && t.push(e[a]);
            return t
        }(s))
    }
    m.fn = h.prototype;
    var g, y, w, b = {
        addClass: function() {
            for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++)
                t[a] = arguments[a];
            var i = v(t.map((function(e) {
                return e.split(" ")
            }
            )));
            return this.forEach((function(e) {
                var t;
                (t = e.classList).add.apply(t, i)
            }
            )),
            this
        },
        removeClass: function() {
            for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++)
                t[a] = arguments[a];
            var i = v(t.map((function(e) {
                return e.split(" ")
            }
            )));
            return this.forEach((function(e) {
                var t;
                (t = e.classList).remove.apply(t, i)
            }
            )),
            this
        },
        hasClass: function() {
            for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++)
                t[a] = arguments[a];
            var i = v(t.map((function(e) {
                return e.split(" ")
            }
            )));
            return f(this, (function(e) {
                return i.filter((function(t) {
                    return e.classList.contains(t)
                }
                )).length > 0
            }
            )).length > 0
        },
        toggleClass: function() {
            for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++)
                t[a] = arguments[a];
            var i = v(t.map((function(e) {
                return e.split(" ")
            }
            )));
            this.forEach((function(e) {
                i.forEach((function(t) {
                    e.classList.toggle(t)
                }
                ))
            }
            ))
        },
        attr: function(e, t) {
            if (1 === arguments.length && "string" == typeof e)
                return this[0] ? this[0].getAttribute(e) : void 0;
            for (var a = 0; a < this.length; a += 1)
                if (2 === arguments.length)
                    this[a].setAttribute(e, t);
                else
                    for (var i in e)
                        this[a][i] = e[i],
                        this[a].setAttribute(i, e[i]);
            return this
        },
        removeAttr: function(e) {
            for (var t = 0; t < this.length; t += 1)
                this[t].removeAttribute(e);
            return this
        },
        transform: function(e) {
            for (var t = 0; t < this.length; t += 1)
                this[t].style.transform = e;
            return this
        },
        transition: function(e) {
            for (var t = 0; t < this.length; t += 1)
                this[t].style.transitionDuration = "string" != typeof e ? e + "ms" : e;
            return this
        },
        on: function() {
            for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++)
                t[a] = arguments[a];
            var i = t[0]
              , s = t[1]
              , r = t[2]
              , n = t[3];
            function l(e) {
                var t = e.target;
                if (t) {
                    var a = e.target.dom7EventData || [];
                    if (a.indexOf(e) < 0 && a.unshift(e),
                    m(t).is(s))
                        r.apply(t, a);
                    else
                        for (var i = m(t).parents(), n = 0; n < i.length; n += 1)
                            m(i[n]).is(s) && r.apply(i[n], a)
                }
            }
            function o(e) {
                var t = e && e.target && e.target.dom7EventData || [];
                t.indexOf(e) < 0 && t.unshift(e),
                r.apply(this, t)
            }
            "function" == typeof t[1] && (i = t[0],
            r = t[1],
            n = t[2],
            s = void 0),
            n || (n = !1);
            for (var d, p = i.split(" "), u = 0; u < this.length; u += 1) {
                var c = this[u];
                if (s)
                    for (d = 0; d < p.length; d += 1) {
                        var h = p[d];
                        c.dom7LiveListeners || (c.dom7LiveListeners = {}),
                        c.dom7LiveListeners[h] || (c.dom7LiveListeners[h] = []),
                        c.dom7LiveListeners[h].push({
                            listener: r,
                            proxyListener: l
                        }),
                        c.addEventListener(h, l, n)
                    }
                else
                    for (d = 0; d < p.length; d += 1) {
                        var v = p[d];
                        c.dom7Listeners || (c.dom7Listeners = {}),
                        c.dom7Listeners[v] || (c.dom7Listeners[v] = []),
                        c.dom7Listeners[v].push({
                            listener: r,
                            proxyListener: o
                        }),
                        c.addEventListener(v, o, n)
                    }
            }
            return this
        },
        off: function() {
            for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++)
                t[a] = arguments[a];
            var i = t[0]
              , s = t[1]
              , r = t[2]
              , n = t[3];
            "function" == typeof t[1] && (i = t[0],
            r = t[1],
            n = t[2],
            s = void 0),
            n || (n = !1);
            for (var l = i.split(" "), o = 0; o < l.length; o += 1)
                for (var d = l[o], p = 0; p < this.length; p += 1) {
                    var u = this[p]
                      , c = void 0;
                    if (!s && u.dom7Listeners ? c = u.dom7Listeners[d] : s && u.dom7LiveListeners && (c = u.dom7LiveListeners[d]),
                    c && c.length)
                        for (var h = c.length - 1; h >= 0; h -= 1) {
                            var v = c[h];
                            r && v.listener === r || r && v.listener && v.listener.dom7proxy && v.listener.dom7proxy === r ? (u.removeEventListener(d, v.proxyListener, n),
                            c.splice(h, 1)) : r || (u.removeEventListener(d, v.proxyListener, n),
                            c.splice(h, 1))
                        }
                }
            return this
        },
        trigger: function() {
            for (var e = l(), t = arguments.length, a = new Array(t), i = 0; i < t; i++)
                a[i] = arguments[i];
            for (var s = a[0].split(" "), r = a[1], n = 0; n < s.length; n += 1)
                for (var o = s[n], d = 0; d < this.length; d += 1) {
                    var p = this[d];
                    if (e.CustomEvent) {
                        var u = new e.CustomEvent(o,{
                            detail: r,
                            bubbles: !0,
                            cancelable: !0
                        });
                        p.dom7EventData = a.filter((function(e, t) {
                            return t > 0
                        }
                        )),
                        p.dispatchEvent(u),
                        p.dom7EventData = [],
                        delete p.dom7EventData
                    }
                }
            return this
        },
        transitionEnd: function(e) {
            var t = this;
            return e && t.on("transitionend", (function a(i) {
                i.target === this && (e.call(this, i),
                t.off("transitionend", a))
            }
            )),
            this
        },
        outerWidth: function(e) {
            if (this.length > 0) {
                if (e) {
                    var t = this.styles();
                    return this[0].offsetWidth + parseFloat(t.getPropertyValue("margin-right")) + parseFloat(t.getPropertyValue("margin-left"))
                }
                return this[0].offsetWidth
            }
            return null
        },
        outerHeight: function(e) {
            if (this.length > 0) {
                if (e) {
                    var t = this.styles();
                    return this[0].offsetHeight + parseFloat(t.getPropertyValue("margin-top")) + parseFloat(t.getPropertyValue("margin-bottom"))
                }
                return this[0].offsetHeight
            }
            return null
        },
        styles: function() {
            var e = l();
            return this[0] ? e.getComputedStyle(this[0], null) : {}
        },
        offset: function() {
            if (this.length > 0) {
                var e = l()
                  , t = r()
                  , a = this[0]
                  , i = a.getBoundingClientRect()
                  , s = t.body
                  , n = a.clientTop || s.clientTop || 0
                  , o = a.clientLeft || s.clientLeft || 0
                  , d = a === e ? e.scrollY : a.scrollTop
                  , p = a === e ? e.scrollX : a.scrollLeft;
                return {
                    top: i.top + d - n,
                    left: i.left + p - o
                }
            }
            return null
        },
        css: function(e, t) {
            var a, i = l();
            if (1 === arguments.length) {
                if ("string" != typeof e) {
                    for (a = 0; a < this.length; a += 1)
                        for (var s in e)
                            this[a].style[s] = e[s];
                    return this
                }
                if (this[0])
                    return i.getComputedStyle(this[0], null).getPropertyValue(e)
            }
            if (2 === arguments.length && "string" == typeof e) {
                for (a = 0; a < this.length; a += 1)
                    this[a].style[e] = t;
                return this
            }
            return this
        },
        each: function(e) {
            return e ? (this.forEach((function(t, a) {
                e.apply(t, [t, a])
            }
            )),
            this) : this
        },
        html: function(e) {
            if (void 0 === e)
                return this[0] ? this[0].innerHTML : null;
            for (var t = 0; t < this.length; t += 1)
                this[t].innerHTML = e;
            return this
        },
        text: function(e) {
            if (void 0 === e)
                return this[0] ? this[0].textContent.trim() : null;
            for (var t = 0; t < this.length; t += 1)
                this[t].textContent = e;
            return this
        },
        is: function(e) {
            var t, a, i = l(), s = r(), n = this[0];
            if (!n || void 0 === e)
                return !1;
            if ("string" == typeof e) {
                if (n.matches)
                    return n.matches(e);
                if (n.webkitMatchesSelector)
                    return n.webkitMatchesSelector(e);
                if (n.msMatchesSelector)
                    return n.msMatchesSelector(e);
                for (t = m(e),
                a = 0; a < t.length; a += 1)
                    if (t[a] === n)
                        return !0;
                return !1
            }
            if (e === s)
                return n === s;
            if (e === i)
                return n === i;
            if (e.nodeType || e instanceof h) {
                for (t = e.nodeType ? [e] : e,
                a = 0; a < t.length; a += 1)
                    if (t[a] === n)
                        return !0;
                return !1
            }
            return !1
        },
        index: function() {
            var e, t = this[0];
            if (t) {
                for (e = 0; null !== (t = t.previousSibling); )
                    1 === t.nodeType && (e += 1);
                return e
            }
        },
        eq: function(e) {
            if (void 0 === e)
                return this;
            var t = this.length;
            if (e > t - 1)
                return m([]);
            if (e < 0) {
                var a = t + e;
                return m(a < 0 ? [] : [this[a]])
            }
            return m([this[e]])
        },
        append: function() {
            for (var e, t = r(), a = 0; a < arguments.length; a += 1) {
                e = a < 0 || arguments.length <= a ? void 0 : arguments[a];
                for (var i = 0; i < this.length; i += 1)
                    if ("string" == typeof e) {
                        var s = t.createElement("div");
                        for (s.innerHTML = e; s.firstChild; )
                            this[i].appendChild(s.firstChild)
                    } else if (e instanceof h)
                        for (var n = 0; n < e.length; n += 1)
                            this[i].appendChild(e[n]);
                    else
                        this[i].appendChild(e)
            }
            return this
        },
        prepend: function(e) {
            var t, a, i = r();
            for (t = 0; t < this.length; t += 1)
                if ("string" == typeof e) {
                    var s = i.createElement("div");
                    for (s.innerHTML = e,
                    a = s.childNodes.length - 1; a >= 0; a -= 1)
                        this[t].insertBefore(s.childNodes[a], this[t].childNodes[0])
                } else if (e instanceof h)
                    for (a = 0; a < e.length; a += 1)
                        this[t].insertBefore(e[a], this[t].childNodes[0]);
                else
                    this[t].insertBefore(e, this[t].childNodes[0]);
            return this
        },
        next: function(e) {
            return this.length > 0 ? e ? this[0].nextElementSibling && m(this[0].nextElementSibling).is(e) ? m([this[0].nextElementSibling]) : m([]) : this[0].nextElementSibling ? m([this[0].nextElementSibling]) : m([]) : m([])
        },
        nextAll: function(e) {
            var t = []
              , a = this[0];
            if (!a)
                return m([]);
            for (; a.nextElementSibling; ) {
                var i = a.nextElementSibling;
                e ? m(i).is(e) && t.push(i) : t.push(i),
                a = i
            }
            return m(t)
        },
        prev: function(e) {
            if (this.length > 0) {
                var t = this[0];
                return e ? t.previousElementSibling && m(t.previousElementSibling).is(e) ? m([t.previousElementSibling]) : m([]) : t.previousElementSibling ? m([t.previousElementSibling]) : m([])
            }
            return m([])
        },
        prevAll: function(e) {
            var t = []
              , a = this[0];
            if (!a)
                return m([]);
            for (; a.previousElementSibling; ) {
                var i = a.previousElementSibling;
                e ? m(i).is(e) && t.push(i) : t.push(i),
                a = i
            }
            return m(t)
        },
        parent: function(e) {
            for (var t = [], a = 0; a < this.length; a += 1)
                null !== this[a].parentNode && (e ? m(this[a].parentNode).is(e) && t.push(this[a].parentNode) : t.push(this[a].parentNode));
            return m(t)
        },
        parents: function(e) {
            for (var t = [], a = 0; a < this.length; a += 1)
                for (var i = this[a].parentNode; i; )
                    e ? m(i).is(e) && t.push(i) : t.push(i),
                    i = i.parentNode;
            return m(t)
        },
        closest: function(e) {
            var t = this;
            return void 0 === e ? m([]) : (t.is(e) || (t = t.parents(e).eq(0)),
            t)
        },
        find: function(e) {
            for (var t = [], a = 0; a < this.length; a += 1)
                for (var i = this[a].querySelectorAll(e), s = 0; s < i.length; s += 1)
                    t.push(i[s]);
            return m(t)
        },
        children: function(e) {
            for (var t = [], a = 0; a < this.length; a += 1)
                for (var i = this[a].children, s = 0; s < i.length; s += 1)
                    e && !m(i[s]).is(e) || t.push(i[s]);
            return m(t)
        },
        filter: function(e) {
            return m(f(this, e))
        },
        remove: function() {
            for (var e = 0; e < this.length; e += 1)
                this[e].parentNode && this[e].parentNode.removeChild(this[e]);
            return this
        }
    };
    function E(e, t) {
        return void 0 === t && (t = 0),
        setTimeout(e, t)
    }
    function x() {
        return Date.now()
    }
    function T(e, t) {
        void 0 === t && (t = "x");
        var a, i, s, r = l(), n = r.getComputedStyle(e, null);
        return r.WebKitCSSMatrix ? ((i = n.transform || n.webkitTransform).split(",").length > 6 && (i = i.split(", ").map((function(e) {
            return e.replace(",", ".")
        }
        )).join(", ")),
        s = new r.WebKitCSSMatrix("none" === i ? "" : i)) : a = (s = n.MozTransform || n.OTransform || n.MsTransform || n.msTransform || n.transform || n.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,")).toString().split(","),
        "x" === t && (i = r.WebKitCSSMatrix ? s.m41 : 16 === a.length ? parseFloat(a[12]) : parseFloat(a[4])),
        "y" === t && (i = r.WebKitCSSMatrix ? s.m42 : 16 === a.length ? parseFloat(a[13]) : parseFloat(a[5])),
        i || 0
    }
    function C(e) {
        return "object" == typeof e && null !== e && e.constructor && e.constructor === Object
    }
    function S() {
        for (var e = Object(arguments.length <= 0 ? void 0 : arguments[0]), t = 1; t < arguments.length; t += 1) {
            var a = t < 0 || arguments.length <= t ? void 0 : arguments[t];
            if (null != a)
                for (var i = Object.keys(Object(a)), s = 0, r = i.length; s < r; s += 1) {
                    var n = i[s]
                      , l = Object.getOwnPropertyDescriptor(a, n);
                    void 0 !== l && l.enumerable && (C(e[n]) && C(a[n]) ? S(e[n], a[n]) : !C(e[n]) && C(a[n]) ? (e[n] = {},
                    S(e[n], a[n])) : e[n] = a[n])
                }
        }
        return e
    }
    function M(e, t) {
        Object.keys(t).forEach((function(a) {
            C(t[a]) && Object.keys(t[a]).forEach((function(i) {
                "function" == typeof t[a][i] && (t[a][i] = t[a][i].bind(e))
            }
            )),
            e[a] = t[a]
        }
        ))
    }
    function z() {
        return g || (g = function() {
            var e = l()
              , t = r();
            return {
                touch: !!("ontouchstart"in e || e.DocumentTouch && t instanceof e.DocumentTouch),
                pointerEvents: !!e.PointerEvent && "maxTouchPoints"in e.navigator && e.navigator.maxTouchPoints >= 0,
                observer: "MutationObserver"in e || "WebkitMutationObserver"in e,
                passiveListener: function() {
                    var t = !1;
                    try {
                        var a = Object.defineProperty({}, "passive", {
                            get: function() {
                                t = !0
                            }
                        });
                        e.addEventListener("testPassiveListener", null, a)
                    } catch (e) {}
                    return t
                }(),
                gestures: "ongesturestart"in e
            }
        }()),
        g
    }
    function P(e) {
        return void 0 === e && (e = {}),
        y || (y = function(e) {
            var t = (void 0 === e ? {} : e).userAgent
              , a = z()
              , i = l()
              , s = i.navigator.platform
              , r = t || i.navigator.userAgent
              , n = {
                ios: !1,
                android: !1
            }
              , o = i.screen.width
              , d = i.screen.height
              , p = r.match(/(Android);?[\s\/]+([\d.]+)?/)
              , u = r.match(/(iPad).*OS\s([\d_]+)/)
              , c = r.match(/(iPod)(.*OS\s([\d_]+))?/)
              , h = !u && r.match(/(iPhone\sOS|iOS)\s([\d_]+)/)
              , v = "Win32" === s
              , f = "MacIntel" === s;
            return !u && f && a.touch && ["1024x1366", "1366x1024", "834x1194", "1194x834", "834x1112", "1112x834", "768x1024", "1024x768", "820x1180", "1180x820", "810x1080", "1080x810"].indexOf(o + "x" + d) >= 0 && ((u = r.match(/(Version)\/([\d.]+)/)) || (u = [0, 1, "13_0_0"]),
            f = !1),
            p && !v && (n.os = "android",
            n.android = !0),
            (u || h || c) && (n.os = "ios",
            n.ios = !0),
            n
        }(e)),
        y
    }
    function k() {
        return w || (w = function() {
            var e, t = l();
            return {
                isEdge: !!t.navigator.userAgent.match(/Edge/g),
                isSafari: (e = t.navigator.userAgent.toLowerCase(),
                e.indexOf("safari") >= 0 && e.indexOf("chrome") < 0 && e.indexOf("android") < 0),
                isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent)
            }
        }()),
        w
    }
    Object.keys(b).forEach((function(e) {
        m.fn[e] = b[e]
    }
    ));
    var L = {
        name: "resize",
        create: function() {
            var e = this;
            S(e, {
                resize: {
                    resizeHandler: function() {
                        e && !e.destroyed && e.initialized && (e.emit("beforeResize"),
                        e.emit("resize"))
                    },
                    orientationChangeHandler: function() {
                        e && !e.destroyed && e.initialized && e.emit("orientationchange")
                    }
                }
            })
        },
        on: {
            init: function(e) {
                var t = l();
                t.addEventListener("resize", e.resize.resizeHandler),
                t.addEventListener("orientationchange", e.resize.orientationChangeHandler)
            },
            destroy: function(e) {
                var t = l();
                t.removeEventListener("resize", e.resize.resizeHandler),
                t.removeEventListener("orientationchange", e.resize.orientationChangeHandler)
            }
        }
    }
      , $ = {
        attach: function(e, t) {
            void 0 === t && (t = {});
            var a = l()
              , i = this
              , s = new (a.MutationObserver || a.WebkitMutationObserver)((function(e) {
                if (1 !== e.length) {
                    var t = function() {
                        i.emit("observerUpdate", e[0])
                    };
                    a.requestAnimationFrame ? a.requestAnimationFrame(t) : a.setTimeout(t, 0)
                } else
                    i.emit("observerUpdate", e[0])
            }
            ));
            s.observe(e, {
                attributes: void 0 === t.attributes || t.attributes,
                childList: void 0 === t.childList || t.childList,
                characterData: void 0 === t.characterData || t.characterData
            }),
            i.observer.observers.push(s)
        },
        init: function() {
            var e = this;
            if (e.support.observer && e.params.observer) {
                if (e.params.observeParents)
                    for (var t = e.$el.parents(), a = 0; a < t.length; a += 1)
                        e.observer.attach(t[a]);
                e.observer.attach(e.$el[0], {
                    childList: e.params.observeSlideChildren
                }),
                e.observer.attach(e.$wrapperEl[0], {
                    attributes: !1
                })
            }
        },
        destroy: function() {
            this.observer.observers.forEach((function(e) {
                e.disconnect()
            }
            )),
            this.observer.observers = []
        }
    }
      , I = {
        name: "observer",
        params: {
            observer: !1,
            observeParents: !1,
            observeSlideChildren: !1
        },
        create: function() {
            M(this, {
                observer: t({}, $, {
                    observers: []
                })
            })
        },
        on: {
            init: function(e) {
                e.observer.init()
            },
            destroy: function(e) {
                e.observer.destroy()
            }
        }
    };
    function O(e) {
        var t = this
          , a = r()
          , i = l()
          , s = t.touchEventsData
          , n = t.params
          , o = t.touches;
        if (!t.animating || !n.preventInteractionOnTransition) {
            var d = e;
            d.originalEvent && (d = d.originalEvent);
            var p = m(d.target);
            if ("wrapper" !== n.touchEventsTarget || p.closest(t.wrapperEl).length)
                if (s.isTouchEvent = "touchstart" === d.type,
                s.isTouchEvent || !("which"in d) || 3 !== d.which)
                    if (!(!s.isTouchEvent && "button"in d && d.button > 0))
                        if (!s.isTouched || !s.isMoved)
                            if (!!n.noSwipingClass && "" !== n.noSwipingClass && d.target && d.target.shadowRoot && e.path && e.path[0] && (p = m(e.path[0])),
                            n.noSwiping && p.closest(n.noSwipingSelector ? n.noSwipingSelector : "." + n.noSwipingClass)[0])
                                t.allowClick = !0;
                            else if (!n.swipeHandler || p.closest(n.swipeHandler)[0]) {
                                o.currentX = "touchstart" === d.type ? d.targetTouches[0].pageX : d.pageX,
                                o.currentY = "touchstart" === d.type ? d.targetTouches[0].pageY : d.pageY;
                                var u = o.currentX
                                  , c = o.currentY
                                  , h = n.edgeSwipeDetection || n.iOSEdgeSwipeDetection
                                  , v = n.edgeSwipeThreshold || n.iOSEdgeSwipeThreshold;
                                if (!h || !(u <= v || u >= i.innerWidth - v)) {
                                    if (S(s, {
                                        isTouched: !0,
                                        isMoved: !1,
                                        allowTouchCallbacks: !0,
                                        isScrolling: void 0,
                                        startMoving: void 0
                                    }),
                                    o.startX = u,
                                    o.startY = c,
                                    s.touchStartTime = x(),
                                    t.allowClick = !0,
                                    t.updateSize(),
                                    t.swipeDirection = void 0,
                                    n.threshold > 0 && (s.allowThresholdMove = !1),
                                    "touchstart" !== d.type) {
                                        var f = !0;
                                        p.is(s.formElements) && (f = !1),
                                        a.activeElement && m(a.activeElement).is(s.formElements) && a.activeElement !== p[0] && a.activeElement.blur();
                                        var g = f && t.allowTouchMove && n.touchStartPreventDefault;
                                        !n.touchStartForcePreventDefault && !g || p[0].isContentEditable || d.preventDefault()
                                    }
                                    t.emit("touchStart", d)
                                }
                            }
        }
    }
    function A(e) {
        var t = r()
          , a = this
          , i = a.touchEventsData
          , s = a.params
          , n = a.touches
          , l = a.rtlTranslate
          , o = e;
        if (o.originalEvent && (o = o.originalEvent),
        i.isTouched) {
            if (!i.isTouchEvent || "touchmove" === o.type) {
                var d = "touchmove" === o.type && o.targetTouches && (o.targetTouches[0] || o.changedTouches[0])
                  , p = "touchmove" === o.type ? d.pageX : o.pageX
                  , u = "touchmove" === o.type ? d.pageY : o.pageY;
                if (o.preventedByNestedSwiper)
                    return n.startX = p,
                    void (n.startY = u);
                if (!a.allowTouchMove)
                    return a.allowClick = !1,
                    void (i.isTouched && (S(n, {
                        startX: p,
                        startY: u,
                        currentX: p,
                        currentY: u
                    }),
                    i.touchStartTime = x()));
                if (i.isTouchEvent && s.touchReleaseOnEdges && !s.loop)
                    if (a.isVertical()) {
                        if (u < n.startY && a.translate <= a.maxTranslate() || u > n.startY && a.translate >= a.minTranslate())
                            return i.isTouched = !1,
                            void (i.isMoved = !1)
                    } else if (p < n.startX && a.translate <= a.maxTranslate() || p > n.startX && a.translate >= a.minTranslate())
                        return;
                if (i.isTouchEvent && t.activeElement && o.target === t.activeElement && m(o.target).is(i.formElements))
                    return i.isMoved = !0,
                    void (a.allowClick = !1);
                if (i.allowTouchCallbacks && a.emit("touchMove", o),
                !(o.targetTouches && o.targetTouches.length > 1)) {
                    n.currentX = p,
                    n.currentY = u;
                    var c = n.currentX - n.startX
                      , h = n.currentY - n.startY;
                    if (!(a.params.threshold && Math.sqrt(Math.pow(c, 2) + Math.pow(h, 2)) < a.params.threshold)) {
                        var v;
                        if (void 0 === i.isScrolling)
                            a.isHorizontal() && n.currentY === n.startY || a.isVertical() && n.currentX === n.startX ? i.isScrolling = !1 : c * c + h * h >= 25 && (v = 180 * Math.atan2(Math.abs(h), Math.abs(c)) / Math.PI,
                            i.isScrolling = a.isHorizontal() ? v > s.touchAngle : 90 - v > s.touchAngle);
                        if (i.isScrolling && a.emit("touchMoveOpposite", o),
                        void 0 === i.startMoving && (n.currentX === n.startX && n.currentY === n.startY || (i.startMoving = !0)),
                        i.isScrolling)
                            i.isTouched = !1;
                        else if (i.startMoving) {
                            a.allowClick = !1,
                            !s.cssMode && o.cancelable && o.preventDefault(),
                            s.touchMoveStopPropagation && !s.nested && o.stopPropagation(),
                            i.isMoved || (s.loop && a.loopFix(),
                            i.startTranslate = a.getTranslate(),
                            a.setTransition(0),
                            a.animating && a.$wrapperEl.trigger("webkitTransitionEnd transitionend"),
                            i.allowMomentumBounce = !1,
                            !s.grabCursor || !0 !== a.allowSlideNext && !0 !== a.allowSlidePrev || a.setGrabCursor(!0),
                            a.emit("sliderFirstMove", o)),
                            a.emit("sliderMove", o),
                            i.isMoved = !0;
                            var f = a.isHorizontal() ? c : h;
                            n.diff = f,
                            f *= s.touchRatio,
                            l && (f = -f),
                            a.swipeDirection = f > 0 ? "prev" : "next",
                            i.currentTranslate = f + i.startTranslate;
                            var g = !0
                              , y = s.resistanceRatio;
                            if (s.touchReleaseOnEdges && (y = 0),
                            f > 0 && i.currentTranslate > a.minTranslate() ? (g = !1,
                            s.resistance && (i.currentTranslate = a.minTranslate() - 1 + Math.pow(-a.minTranslate() + i.startTranslate + f, y))) : f < 0 && i.currentTranslate < a.maxTranslate() && (g = !1,
                            s.resistance && (i.currentTranslate = a.maxTranslate() + 1 - Math.pow(a.maxTranslate() - i.startTranslate - f, y))),
                            g && (o.preventedByNestedSwiper = !0),
                            !a.allowSlideNext && "next" === a.swipeDirection && i.currentTranslate < i.startTranslate && (i.currentTranslate = i.startTranslate),
                            !a.allowSlidePrev && "prev" === a.swipeDirection && i.currentTranslate > i.startTranslate && (i.currentTranslate = i.startTranslate),
                            s.threshold > 0) {
                                if (!(Math.abs(f) > s.threshold || i.allowThresholdMove))
                                    return void (i.currentTranslate = i.startTranslate);
                                if (!i.allowThresholdMove)
                                    return i.allowThresholdMove = !0,
                                    n.startX = n.currentX,
                                    n.startY = n.currentY,
                                    i.currentTranslate = i.startTranslate,
                                    void (n.diff = a.isHorizontal() ? n.currentX - n.startX : n.currentY - n.startY)
                            }
                            s.followFinger && !s.cssMode && ((s.freeMode || s.watchSlidesProgress || s.watchSlidesVisibility) && (a.updateActiveIndex(),
                            a.updateSlidesClasses()),
                            s.freeMode && (0 === i.velocities.length && i.velocities.push({
                                position: n[a.isHorizontal() ? "startX" : "startY"],
                                time: i.touchStartTime
                            }),
                            i.velocities.push({
                                position: n[a.isHorizontal() ? "currentX" : "currentY"],
                                time: x()
                            })),
                            a.updateProgress(i.currentTranslate),
                            a.setTranslate(i.currentTranslate))
                        }
                    }
                }
            }
        } else
            i.startMoving && i.isScrolling && a.emit("touchMoveOpposite", o)
    }
    function D(e) {
        var t = this
          , a = t.touchEventsData
          , i = t.params
          , s = t.touches
          , r = t.rtlTranslate
          , n = t.$wrapperEl
          , l = t.slidesGrid
          , o = t.snapGrid
          , d = e;
        if (d.originalEvent && (d = d.originalEvent),
        a.allowTouchCallbacks && t.emit("touchEnd", d),
        a.allowTouchCallbacks = !1,
        !a.isTouched)
            return a.isMoved && i.grabCursor && t.setGrabCursor(!1),
            a.isMoved = !1,
            void (a.startMoving = !1);
        i.grabCursor && a.isMoved && a.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1);
        var p, u = x(), c = u - a.touchStartTime;
        if (t.allowClick && (t.updateClickedSlide(d),
        t.emit("tap click", d),
        c < 300 && u - a.lastClickTime < 300 && t.emit("doubleTap doubleClick", d)),
        a.lastClickTime = x(),
        E((function() {
            t.destroyed || (t.allowClick = !0)
        }
        )),
        !a.isTouched || !a.isMoved || !t.swipeDirection || 0 === s.diff || a.currentTranslate === a.startTranslate)
            return a.isTouched = !1,
            a.isMoved = !1,
            void (a.startMoving = !1);
        if (a.isTouched = !1,
        a.isMoved = !1,
        a.startMoving = !1,
        p = i.followFinger ? r ? t.translate : -t.translate : -a.currentTranslate,
        !i.cssMode)
            if (i.freeMode) {
                if (p < -t.minTranslate())
                    return void t.slideTo(t.activeIndex);
                if (p > -t.maxTranslate())
                    return void (t.slides.length < o.length ? t.slideTo(o.length - 1) : t.slideTo(t.slides.length - 1));
                if (i.freeModeMomentum) {
                    if (a.velocities.length > 1) {
                        var h = a.velocities.pop()
                          , v = a.velocities.pop()
                          , f = h.position - v.position
                          , m = h.time - v.time;
                        t.velocity = f / m,
                        t.velocity /= 2,
                        Math.abs(t.velocity) < i.freeModeMinimumVelocity && (t.velocity = 0),
                        (m > 150 || x() - h.time > 300) && (t.velocity = 0)
                    } else
                        t.velocity = 0;
                    t.velocity *= i.freeModeMomentumVelocityRatio,
                    a.velocities.length = 0;
                    var g = 1e3 * i.freeModeMomentumRatio
                      , y = t.velocity * g
                      , w = t.translate + y;
                    r && (w = -w);
                    var b, T, C = !1, S = 20 * Math.abs(t.velocity) * i.freeModeMomentumBounceRatio;
                    if (w < t.maxTranslate())
                        i.freeModeMomentumBounce ? (w + t.maxTranslate() < -S && (w = t.maxTranslate() - S),
                        b = t.maxTranslate(),
                        C = !0,
                        a.allowMomentumBounce = !0) : w = t.maxTranslate(),
                        i.loop && i.centeredSlides && (T = !0);
                    else if (w > t.minTranslate())
                        i.freeModeMomentumBounce ? (w - t.minTranslate() > S && (w = t.minTranslate() + S),
                        b = t.minTranslate(),
                        C = !0,
                        a.allowMomentumBounce = !0) : w = t.minTranslate(),
                        i.loop && i.centeredSlides && (T = !0);
                    else if (i.freeModeSticky) {
                        for (var M, z = 0; z < o.length; z += 1)
                            if (o[z] > -w) {
                                M = z;
                                break
                            }
                        w = -(w = Math.abs(o[M] - w) < Math.abs(o[M - 1] - w) || "next" === t.swipeDirection ? o[M] : o[M - 1])
                    }
                    if (T && t.once("transitionEnd", (function() {
                        t.loopFix()
                    }
                    )),
                    0 !== t.velocity) {
                        if (g = r ? Math.abs((-w - t.translate) / t.velocity) : Math.abs((w - t.translate) / t.velocity),
                        i.freeModeSticky) {
                            var P = Math.abs((r ? -w : w) - t.translate)
                              , k = t.slidesSizesGrid[t.activeIndex];
                            g = P < k ? i.speed : P < 2 * k ? 1.5 * i.speed : 2.5 * i.speed
                        }
                    } else if (i.freeModeSticky)
                        return void t.slideToClosest();
                    i.freeModeMomentumBounce && C ? (t.updateProgress(b),
                    t.setTransition(g),
                    t.setTranslate(w),
                    t.transitionStart(!0, t.swipeDirection),
                    t.animating = !0,
                    n.transitionEnd((function() {
                        t && !t.destroyed && a.allowMomentumBounce && (t.emit("momentumBounce"),
                        t.setTransition(i.speed),
                        setTimeout((function() {
                            t.setTranslate(b),
                            n.transitionEnd((function() {
                                t && !t.destroyed && t.transitionEnd()
                            }
                            ))
                        }
                        ), 0))
                    }
                    ))) : t.velocity ? (t.updateProgress(w),
                    t.setTransition(g),
                    t.setTranslate(w),
                    t.transitionStart(!0, t.swipeDirection),
                    t.animating || (t.animating = !0,
                    n.transitionEnd((function() {
                        t && !t.destroyed && t.transitionEnd()
                    }
                    )))) : t.updateProgress(w),
                    t.updateActiveIndex(),
                    t.updateSlidesClasses()
                } else if (i.freeModeSticky)
                    return void t.slideToClosest();
                (!i.freeModeMomentum || c >= i.longSwipesMs) && (t.updateProgress(),
                t.updateActiveIndex(),
                t.updateSlidesClasses())
            } else {
                for (var L = 0, $ = t.slidesSizesGrid[0], I = 0; I < l.length; I += I < i.slidesPerGroupSkip ? 1 : i.slidesPerGroup) {
                    var O = I < i.slidesPerGroupSkip - 1 ? 1 : i.slidesPerGroup;
                    void 0 !== l[I + O] ? p >= l[I] && p < l[I + O] && (L = I,
                    $ = l[I + O] - l[I]) : p >= l[I] && (L = I,
                    $ = l[l.length - 1] - l[l.length - 2])
                }
                var A = (p - l[L]) / $
                  , D = L < i.slidesPerGroupSkip - 1 ? 1 : i.slidesPerGroup;
                if (c > i.longSwipesMs) {
                    if (!i.longSwipes)
                        return void t.slideTo(t.activeIndex);
                    "next" === t.swipeDirection && (A >= i.longSwipesRatio ? t.slideTo(L + D) : t.slideTo(L)),
                    "prev" === t.swipeDirection && (A > 1 - i.longSwipesRatio ? t.slideTo(L + D) : t.slideTo(L))
                } else {
                    if (!i.shortSwipes)
                        return void t.slideTo(t.activeIndex);
                    t.navigation && (d.target === t.navigation.nextEl || d.target === t.navigation.prevEl) ? d.target === t.navigation.nextEl ? t.slideTo(L + D) : t.slideTo(L) : ("next" === t.swipeDirection && t.slideTo(L + D),
                    "prev" === t.swipeDirection && t.slideTo(L))
                }
            }
    }
    function G() {
        var e = this
          , t = e.params
          , a = e.el;
        if (!a || 0 !== a.offsetWidth) {
            t.breakpoints && e.setBreakpoint();
            var i = e.allowSlideNext
              , s = e.allowSlidePrev
              , r = e.snapGrid;
            e.allowSlideNext = !0,
            e.allowSlidePrev = !0,
            e.updateSize(),
            e.updateSlides(),
            e.updateSlidesClasses(),
            ("auto" === t.slidesPerView || t.slidesPerView > 1) && e.isEnd && !e.isBeginning && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0),
            e.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.run(),
            e.allowSlidePrev = s,
            e.allowSlideNext = i,
            e.params.watchOverflow && r !== e.snapGrid && e.checkOverflow()
        }
    }
    function N(e) {
        var t = this;
        t.allowClick || (t.params.preventClicks && e.preventDefault(),
        t.params.preventClicksPropagation && t.animating && (e.stopPropagation(),
        e.stopImmediatePropagation()))
    }
    function B() {
        var e = this
          , t = e.wrapperEl
          , a = e.rtlTranslate;
        e.previousTranslate = e.translate,
        e.isHorizontal() ? e.translate = a ? t.scrollWidth - t.offsetWidth - t.scrollLeft : -t.scrollLeft : e.translate = -t.scrollTop,
        -0 === e.translate && (e.translate = 0),
        e.updateActiveIndex(),
        e.updateSlidesClasses();
        var i = e.maxTranslate() - e.minTranslate();
        (0 === i ? 0 : (e.translate - e.minTranslate()) / i) !== e.progress && e.updateProgress(a ? -e.translate : e.translate),
        e.emit("setTranslate", e.translate, !1)
    }
    var H = !1;
    function X() {}
    var Y = {
        init: !0,
        direction: "horizontal",
        touchEventsTarget: "container",
        initialSlide: 0,
        speed: 300,
        cssMode: !1,
        updateOnWindowResize: !0,
        nested: !1,
        width: null,
        height: null,
        preventInteractionOnTransition: !1,
        userAgent: null,
        url: null,
        edgeSwipeDetection: !1,
        edgeSwipeThreshold: 20,
        freeMode: !1,
        freeModeMomentum: !0,
        freeModeMomentumRatio: 1,
        freeModeMomentumBounce: !0,
        freeModeMomentumBounceRatio: 1,
        freeModeMomentumVelocityRatio: 1,
        freeModeSticky: !1,
        freeModeMinimumVelocity: .02,
        autoHeight: !1,
        setWrapperSize: !1,
        virtualTranslate: !1,
        effect: "slide",
        breakpoints: void 0,
        spaceBetween: 0,
        slidesPerView: 1,
        slidesPerColumn: 1,
        slidesPerColumnFill: "column",
        slidesPerGroup: 1,
        slidesPerGroupSkip: 0,
        centeredSlides: !1,
        centeredSlidesBounds: !1,
        slidesOffsetBefore: 0,
        slidesOffsetAfter: 0,
        normalizeSlideIndex: !0,
        centerInsufficientSlides: !1,
        watchOverflow: !1,
        roundLengths: !1,
        touchRatio: 1,
        touchAngle: 45,
        simulateTouch: !0,
        shortSwipes: !0,
        longSwipes: !0,
        longSwipesRatio: .5,
        longSwipesMs: 300,
        followFinger: !0,
        allowTouchMove: !0,
        threshold: 0,
        touchMoveStopPropagation: !1,
        touchStartPreventDefault: !0,
        touchStartForcePreventDefault: !1,
        touchReleaseOnEdges: !1,
        uniqueNavElements: !0,
        resistance: !0,
        resistanceRatio: .85,
        watchSlidesProgress: !1,
        watchSlidesVisibility: !1,
        grabCursor: !1,
        preventClicks: !0,
        preventClicksPropagation: !0,
        slideToClickedSlide: !1,
        preloadImages: !0,
        updateOnImagesReady: !0,
        loop: !1,
        loopAdditionalSlides: 0,
        loopedSlides: null,
        loopFillGroupWithBlank: !1,
        loopPreventsSlide: !0,
        allowSlidePrev: !0,
        allowSlideNext: !0,
        swipeHandler: null,
        noSwiping: !0,
        noSwipingClass: "swiper-no-swiping",
        noSwipingSelector: null,
        passiveListeners: !0,
        containerModifierClass: "swiper-container-",
        slideClass: "swiper-slide",
        slideBlankClass: "swiper-slide-invisible-blank",
        slideActiveClass: "swiper-slide-active",
        slideDuplicateActiveClass: "swiper-slide-duplicate-active",
        slideVisibleClass: "swiper-slide-visible",
        slideDuplicateClass: "swiper-slide-duplicate",
        slideNextClass: "swiper-slide-next",
        slideDuplicateNextClass: "swiper-slide-duplicate-next",
        slidePrevClass: "swiper-slide-prev",
        slideDuplicatePrevClass: "swiper-slide-duplicate-prev",
        wrapperClass: "swiper-wrapper",
        runCallbacksOnInit: !0,
        _emitClasses: !1
    }
      , V = {
        modular: {
            useParams: function(e) {
                var t = this;
                t.modules && Object.keys(t.modules).forEach((function(a) {
                    var i = t.modules[a];
                    i.params && S(e, i.params)
                }
                ))
            },
            useModules: function(e) {
                void 0 === e && (e = {});
                var t = this;
                t.modules && Object.keys(t.modules).forEach((function(a) {
                    var i = t.modules[a]
                      , s = e[a] || {};
                    i.on && t.on && Object.keys(i.on).forEach((function(e) {
                        t.on(e, i.on[e])
                    }
                    )),
                    i.create && i.create.bind(t)(s)
                }
                ))
            }
        },
        eventsEmitter: {
            on: function(e, t, a) {
                var i = this;
                if ("function" != typeof t)
                    return i;
                var s = a ? "unshift" : "push";
                return e.split(" ").forEach((function(e) {
                    i.eventsListeners[e] || (i.eventsListeners[e] = []),
                    i.eventsListeners[e][s](t)
                }
                )),
                i
            },
            once: function(e, t, a) {
                var i = this;
                if ("function" != typeof t)
                    return i;
                function s() {
                    i.off(e, s),
                    s.__emitterProxy && delete s.__emitterProxy;
                    for (var a = arguments.length, r = new Array(a), n = 0; n < a; n++)
                        r[n] = arguments[n];
                    t.apply(i, r)
                }
                return s.__emitterProxy = t,
                i.on(e, s, a)
            },
            onAny: function(e, t) {
                var a = this;
                if ("function" != typeof e)
                    return a;
                var i = t ? "unshift" : "push";
                return a.eventsAnyListeners.indexOf(e) < 0 && a.eventsAnyListeners[i](e),
                a
            },
            offAny: function(e) {
                var t = this;
                if (!t.eventsAnyListeners)
                    return t;
                var a = t.eventsAnyListeners.indexOf(e);
                return a >= 0 && t.eventsAnyListeners.splice(a, 1),
                t
            },
            off: function(e, t) {
                var a = this;
                return a.eventsListeners ? (e.split(" ").forEach((function(e) {
                    void 0 === t ? a.eventsListeners[e] = [] : a.eventsListeners[e] && a.eventsListeners[e].forEach((function(i, s) {
                        (i === t || i.__emitterProxy && i.__emitterProxy === t) && a.eventsListeners[e].splice(s, 1)
                    }
                    ))
                }
                )),
                a) : a
            },
            emit: function() {
                var e, t, a, i = this;
                if (!i.eventsListeners)
                    return i;
                for (var s = arguments.length, r = new Array(s), n = 0; n < s; n++)
                    r[n] = arguments[n];
                "string" == typeof r[0] || Array.isArray(r[0]) ? (e = r[0],
                t = r.slice(1, r.length),
                a = i) : (e = r[0].events,
                t = r[0].data,
                a = r[0].context || i),
                t.unshift(a);
                var l = Array.isArray(e) ? e : e.split(" ");
                return l.forEach((function(e) {
                    i.eventsAnyListeners && i.eventsAnyListeners.length && i.eventsAnyListeners.forEach((function(i) {
                        i.apply(a, [e].concat(t))
                    }
                    )),
                    i.eventsListeners && i.eventsListeners[e] && i.eventsListeners[e].forEach((function(e) {
                        e.apply(a, t)
                    }
                    ))
                }
                )),
                i
            }
        },
        update: {
            updateSize: function() {
                var e, t, a = this, i = a.$el;
                e = void 0 !== a.params.width && null !== a.params.width ? a.params.width : i[0].clientWidth,
                t = void 0 !== a.params.height && null !== a.params.height ? a.params.height : i[0].clientHeight,
                0 === e && a.isHorizontal() || 0 === t && a.isVertical() || (e = e - parseInt(i.css("padding-left") || 0, 10) - parseInt(i.css("padding-right") || 0, 10),
                t = t - parseInt(i.css("padding-top") || 0, 10) - parseInt(i.css("padding-bottom") || 0, 10),
                Number.isNaN(e) && (e = 0),
                Number.isNaN(t) && (t = 0),
                S(a, {
                    width: e,
                    height: t,
                    size: a.isHorizontal() ? e : t
                }))
            },
            updateSlides: function() {
                var e = this
                  , t = l()
                  , a = e.params
                  , i = e.$wrapperEl
                  , s = e.size
                  , r = e.rtlTranslate
                  , n = e.wrongRTL
                  , o = e.virtual && a.virtual.enabled
                  , d = o ? e.virtual.slides.length : e.slides.length
                  , p = i.children("." + e.params.slideClass)
                  , u = o ? e.virtual.slides.length : p.length
                  , c = []
                  , h = []
                  , v = [];
                function f(e, t) {
                    return !a.cssMode || t !== p.length - 1
                }
                var m = a.slidesOffsetBefore;
                "function" == typeof m && (m = a.slidesOffsetBefore.call(e));
                var g = a.slidesOffsetAfter;
                "function" == typeof g && (g = a.slidesOffsetAfter.call(e));
                var y = e.snapGrid.length
                  , w = e.slidesGrid.length
                  , b = a.spaceBetween
                  , E = -m
                  , x = 0
                  , T = 0;
                if (void 0 !== s) {
                    var C, M;
                    "string" == typeof b && b.indexOf("%") >= 0 && (b = parseFloat(b.replace("%", "")) / 100 * s),
                    e.virtualSize = -b,
                    r ? p.css({
                        marginLeft: "",
                        marginTop: ""
                    }) : p.css({
                        marginRight: "",
                        marginBottom: ""
                    }),
                    a.slidesPerColumn > 1 && (C = Math.floor(u / a.slidesPerColumn) === u / e.params.slidesPerColumn ? u : Math.ceil(u / a.slidesPerColumn) * a.slidesPerColumn,
                    "auto" !== a.slidesPerView && "row" === a.slidesPerColumnFill && (C = Math.max(C, a.slidesPerView * a.slidesPerColumn)));
                    for (var z, P = a.slidesPerColumn, k = C / P, L = Math.floor(u / a.slidesPerColumn), $ = 0; $ < u; $ += 1) {
                        M = 0;
                        var I = p.eq($);
                        if (a.slidesPerColumn > 1) {
                            var O = void 0
                              , A = void 0
                              , D = void 0;
                            if ("row" === a.slidesPerColumnFill && a.slidesPerGroup > 1) {
                                var G = Math.floor($ / (a.slidesPerGroup * a.slidesPerColumn))
                                  , N = $ - a.slidesPerColumn * a.slidesPerGroup * G
                                  , B = 0 === G ? a.slidesPerGroup : Math.min(Math.ceil((u - G * P * a.slidesPerGroup) / P), a.slidesPerGroup);
                                O = (A = N - (D = Math.floor(N / B)) * B + G * a.slidesPerGroup) + D * C / P,
                                I.css({
                                    "-webkit-box-ordinal-group": O,
                                    "-moz-box-ordinal-group": O,
                                    "-ms-flex-order": O,
                                    "-webkit-order": O,
                                    order: O
                                })
                            } else
                                "column" === a.slidesPerColumnFill ? (D = $ - (A = Math.floor($ / P)) * P,
                                (A > L || A === L && D === P - 1) && (D += 1) >= P && (D = 0,
                                A += 1)) : A = $ - (D = Math.floor($ / k)) * k;
                            I.css("margin-" + (e.isHorizontal() ? "top" : "left"), 0 !== D && a.spaceBetween && a.spaceBetween + "px")
                        }
                        if ("none" !== I.css("display")) {
                            if ("auto" === a.slidesPerView) {
                                var H = t.getComputedStyle(I[0], null)
                                  , X = I[0].style.transform
                                  , Y = I[0].style.webkitTransform;
                                if (X && (I[0].style.transform = "none"),
                                Y && (I[0].style.webkitTransform = "none"),
                                a.roundLengths)
                                    M = e.isHorizontal() ? I.outerWidth(!0) : I.outerHeight(!0);
                                else if (e.isHorizontal()) {
                                    var V = parseFloat(H.getPropertyValue("width") || 0)
                                      , F = parseFloat(H.getPropertyValue("padding-left") || 0)
                                      , R = parseFloat(H.getPropertyValue("padding-right") || 0)
                                      , W = parseFloat(H.getPropertyValue("margin-left") || 0)
                                      , q = parseFloat(H.getPropertyValue("margin-right") || 0)
                                      , j = H.getPropertyValue("box-sizing");
                                    if (j && "border-box" === j)
                                        M = V + W + q;
                                    else {
                                        var _ = I[0]
                                          , U = _.clientWidth;
                                        M = V + F + R + W + q + (_.offsetWidth - U)
                                    }
                                } else {
                                    var K = parseFloat(H.getPropertyValue("height") || 0)
                                      , Z = parseFloat(H.getPropertyValue("padding-top") || 0)
                                      , J = parseFloat(H.getPropertyValue("padding-bottom") || 0)
                                      , Q = parseFloat(H.getPropertyValue("margin-top") || 0)
                                      , ee = parseFloat(H.getPropertyValue("margin-bottom") || 0)
                                      , te = H.getPropertyValue("box-sizing");
                                    if (te && "border-box" === te)
                                        M = K + Q + ee;
                                    else {
                                        var ae = I[0]
                                          , ie = ae.clientHeight;
                                        M = K + Z + J + Q + ee + (ae.offsetHeight - ie)
                                    }
                                }
                                X && (I[0].style.transform = X),
                                Y && (I[0].style.webkitTransform = Y),
                                a.roundLengths && (M = Math.floor(M))
                            } else
                                M = (s - (a.slidesPerView - 1) * b) / a.slidesPerView,
                                a.roundLengths && (M = Math.floor(M)),
                                p[$] && (e.isHorizontal() ? p[$].style.width = M + "px" : p[$].style.height = M + "px");
                            p[$] && (p[$].swiperSlideSize = M),
                            v.push(M),
                            a.centeredSlides ? (E = E + M / 2 + x / 2 + b,
                            0 === x && 0 !== $ && (E = E - s / 2 - b),
                            0 === $ && (E = E - s / 2 - b),
                            Math.abs(E) < .001 && (E = 0),
                            a.roundLengths && (E = Math.floor(E)),
                            T % a.slidesPerGroup == 0 && c.push(E),
                            h.push(E)) : (a.roundLengths && (E = Math.floor(E)),
                            (T - Math.min(e.params.slidesPerGroupSkip, T)) % e.params.slidesPerGroup == 0 && c.push(E),
                            h.push(E),
                            E = E + M + b),
                            e.virtualSize += M + b,
                            x = M,
                            T += 1
                        }
                    }
                    if (e.virtualSize = Math.max(e.virtualSize, s) + g,
                    r && n && ("slide" === a.effect || "coverflow" === a.effect) && i.css({
                        width: e.virtualSize + a.spaceBetween + "px"
                    }),
                    a.setWrapperSize && (e.isHorizontal() ? i.css({
                        width: e.virtualSize + a.spaceBetween + "px"
                    }) : i.css({
                        height: e.virtualSize + a.spaceBetween + "px"
                    })),
                    a.slidesPerColumn > 1 && (e.virtualSize = (M + a.spaceBetween) * C,
                    e.virtualSize = Math.ceil(e.virtualSize / a.slidesPerColumn) - a.spaceBetween,
                    e.isHorizontal() ? i.css({
                        width: e.virtualSize + a.spaceBetween + "px"
                    }) : i.css({
                        height: e.virtualSize + a.spaceBetween + "px"
                    }),
                    a.centeredSlides)) {
                        z = [];
                        for (var se = 0; se < c.length; se += 1) {
                            var re = c[se];
                            a.roundLengths && (re = Math.floor(re)),
                            c[se] < e.virtualSize + c[0] && z.push(re)
                        }
                        c = z
                    }
                    if (!a.centeredSlides) {
                        z = [];
                        for (var ne = 0; ne < c.length; ne += 1) {
                            var le = c[ne];
                            a.roundLengths && (le = Math.floor(le)),
                            c[ne] <= e.virtualSize - s && z.push(le)
                        }
                        c = z,
                        Math.floor(e.virtualSize - s) - Math.floor(c[c.length - 1]) > 1 && c.push(e.virtualSize - s)
                    }
                    if (0 === c.length && (c = [0]),
                    0 !== a.spaceBetween && (e.isHorizontal() ? r ? p.filter(f).css({
                        marginLeft: b + "px"
                    }) : p.filter(f).css({
                        marginRight: b + "px"
                    }) : p.filter(f).css({
                        marginBottom: b + "px"
                    })),
                    a.centeredSlides && a.centeredSlidesBounds) {
                        var oe = 0;
                        v.forEach((function(e) {
                            oe += e + (a.spaceBetween ? a.spaceBetween : 0)
                        }
                        ));
                        var de = (oe -= a.spaceBetween) - s;
                        c = c.map((function(e) {
                            return e < 0 ? -m : e > de ? de + g : e
                        }
                        ))
                    }
                    if (a.centerInsufficientSlides) {
                        var pe = 0;
                        if (v.forEach((function(e) {
                            pe += e + (a.spaceBetween ? a.spaceBetween : 0)
                        }
                        )),
                        (pe -= a.spaceBetween) < s) {
                            var ue = (s - pe) / 2;
                            c.forEach((function(e, t) {
                                c[t] = e - ue
                            }
                            )),
                            h.forEach((function(e, t) {
                                h[t] = e + ue
                            }
                            ))
                        }
                    }
                    S(e, {
                        slides: p,
                        snapGrid: c,
                        slidesGrid: h,
                        slidesSizesGrid: v
                    }),
                    u !== d && e.emit("slidesLengthChange"),
                    c.length !== y && (e.params.watchOverflow && e.checkOverflow(),
                    e.emit("snapGridLengthChange")),
                    h.length !== w && e.emit("slidesGridLengthChange"),
                    (a.watchSlidesProgress || a.watchSlidesVisibility) && e.updateSlidesOffset()
                }
            },
            updateAutoHeight: function(e) {
                var t, a = this, i = [], s = 0;
                if ("number" == typeof e ? a.setTransition(e) : !0 === e && a.setTransition(a.params.speed),
                "auto" !== a.params.slidesPerView && a.params.slidesPerView > 1)
                    if (a.params.centeredSlides)
                        a.visibleSlides.each((function(e) {
                            i.push(e)
                        }
                        ));
                    else
                        for (t = 0; t < Math.ceil(a.params.slidesPerView); t += 1) {
                            var r = a.activeIndex + t;
                            if (r > a.slides.length)
                                break;
                            i.push(a.slides.eq(r)[0])
                        }
                else
                    i.push(a.slides.eq(a.activeIndex)[0]);
                for (t = 0; t < i.length; t += 1)
                    if (void 0 !== i[t]) {
                        var n = i[t].offsetHeight;
                        s = n > s ? n : s
                    }
                s && a.$wrapperEl.css("height", s + "px")
            },
            updateSlidesOffset: function() {
                for (var e = this.slides, t = 0; t < e.length; t += 1)
                    e[t].swiperSlideOffset = this.isHorizontal() ? e[t].offsetLeft : e[t].offsetTop
            },
            updateSlidesProgress: function(e) {
                void 0 === e && (e = this && this.translate || 0);
                var t = this
                  , a = t.params
                  , i = t.slides
                  , s = t.rtlTranslate;
                if (0 !== i.length) {
                    void 0 === i[0].swiperSlideOffset && t.updateSlidesOffset();
                    var r = -e;
                    s && (r = e),
                    i.removeClass(a.slideVisibleClass),
                    t.visibleSlidesIndexes = [],
                    t.visibleSlides = [];
                    for (var n = 0; n < i.length; n += 1) {
                        var l = i[n]
                          , o = (r + (a.centeredSlides ? t.minTranslate() : 0) - l.swiperSlideOffset) / (l.swiperSlideSize + a.spaceBetween);
                        if (a.watchSlidesVisibility || a.centeredSlides && a.autoHeight) {
                            var d = -(r - l.swiperSlideOffset)
                              , p = d + t.slidesSizesGrid[n];
                            (d >= 0 && d < t.size - 1 || p > 1 && p <= t.size || d <= 0 && p >= t.size) && (t.visibleSlides.push(l),
                            t.visibleSlidesIndexes.push(n),
                            i.eq(n).addClass(a.slideVisibleClass))
                        }
                        l.progress = s ? -o : o
                    }
                    t.visibleSlides = m(t.visibleSlides)
                }
            },
            updateProgress: function(e) {
                var t = this;
                if (void 0 === e) {
                    var a = t.rtlTranslate ? -1 : 1;
                    e = t && t.translate && t.translate * a || 0
                }
                var i = t.params
                  , s = t.maxTranslate() - t.minTranslate()
                  , r = t.progress
                  , n = t.isBeginning
                  , l = t.isEnd
                  , o = n
                  , d = l;
                0 === s ? (r = 0,
                n = !0,
                l = !0) : (n = (r = (e - t.minTranslate()) / s) <= 0,
                l = r >= 1),
                S(t, {
                    progress: r,
                    isBeginning: n,
                    isEnd: l
                }),
                (i.watchSlidesProgress || i.watchSlidesVisibility || i.centeredSlides && i.autoHeight) && t.updateSlidesProgress(e),
                n && !o && t.emit("reachBeginning toEdge"),
                l && !d && t.emit("reachEnd toEdge"),
                (o && !n || d && !l) && t.emit("fromEdge"),
                t.emit("progress", r)
            },
            updateSlidesClasses: function() {
                var e, t = this, a = t.slides, i = t.params, s = t.$wrapperEl, r = t.activeIndex, n = t.realIndex, l = t.virtual && i.virtual.enabled;
                a.removeClass(i.slideActiveClass + " " + i.slideNextClass + " " + i.slidePrevClass + " " + i.slideDuplicateActiveClass + " " + i.slideDuplicateNextClass + " " + i.slideDuplicatePrevClass),
                (e = l ? t.$wrapperEl.find("." + i.slideClass + '[data-swiper-slide-index="' + r + '"]') : a.eq(r)).addClass(i.slideActiveClass),
                i.loop && (e.hasClass(i.slideDuplicateClass) ? s.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + n + '"]').addClass(i.slideDuplicateActiveClass) : s.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + n + '"]').addClass(i.slideDuplicateActiveClass));
                var o = e.nextAll("." + i.slideClass).eq(0).addClass(i.slideNextClass);
                i.loop && 0 === o.length && (o = a.eq(0)).addClass(i.slideNextClass);
                var d = e.prevAll("." + i.slideClass).eq(0).addClass(i.slidePrevClass);
                i.loop && 0 === d.length && (d = a.eq(-1)).addClass(i.slidePrevClass),
                i.loop && (o.hasClass(i.slideDuplicateClass) ? s.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + o.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicateNextClass) : s.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + o.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicateNextClass),
                d.hasClass(i.slideDuplicateClass) ? s.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + d.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicatePrevClass) : s.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + d.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicatePrevClass)),
                t.emitSlidesClasses()
            },
            updateActiveIndex: function(e) {
                var t, a = this, i = a.rtlTranslate ? a.translate : -a.translate, s = a.slidesGrid, r = a.snapGrid, n = a.params, l = a.activeIndex, o = a.realIndex, d = a.snapIndex, p = e;
                if (void 0 === p) {
                    for (var u = 0; u < s.length; u += 1)
                        void 0 !== s[u + 1] ? i >= s[u] && i < s[u + 1] - (s[u + 1] - s[u]) / 2 ? p = u : i >= s[u] && i < s[u + 1] && (p = u + 1) : i >= s[u] && (p = u);
                    n.normalizeSlideIndex && (p < 0 || void 0 === p) && (p = 0)
                }
                if (r.indexOf(i) >= 0)
                    t = r.indexOf(i);
                else {
                    var c = Math.min(n.slidesPerGroupSkip, p);
                    t = c + Math.floor((p - c) / n.slidesPerGroup)
                }
                if (t >= r.length && (t = r.length - 1),
                p !== l) {
                    var h = parseInt(a.slides.eq(p).attr("data-swiper-slide-index") || p, 10);
                    S(a, {
                        snapIndex: t,
                        realIndex: h,
                        previousIndex: l,
                        activeIndex: p
                    }),
                    a.emit("activeIndexChange"),
                    a.emit("snapIndexChange"),
                    o !== h && a.emit("realIndexChange"),
                    (a.initialized || a.params.runCallbacksOnInit) && a.emit("slideChange")
                } else
                    t !== d && (a.snapIndex = t,
                    a.emit("snapIndexChange"))
            },
            updateClickedSlide: function(e) {
                var t = this
                  , a = t.params
                  , i = m(e.target).closest("." + a.slideClass)[0]
                  , s = !1;
                if (i)
                    for (var r = 0; r < t.slides.length; r += 1)
                        t.slides[r] === i && (s = !0);
                if (!i || !s)
                    return t.clickedSlide = void 0,
                    void (t.clickedIndex = void 0);
                t.clickedSlide = i,
                t.virtual && t.params.virtual.enabled ? t.clickedIndex = parseInt(m(i).attr("data-swiper-slide-index"), 10) : t.clickedIndex = m(i).index(),
                a.slideToClickedSlide && void 0 !== t.clickedIndex && t.clickedIndex !== t.activeIndex && t.slideToClickedSlide()
            }
        },
        translate: {
            getTranslate: function(e) {
                void 0 === e && (e = this.isHorizontal() ? "x" : "y");
                var t = this
                  , a = t.params
                  , i = t.rtlTranslate
                  , s = t.translate
                  , r = t.$wrapperEl;
                if (a.virtualTranslate)
                    return i ? -s : s;
                if (a.cssMode)
                    return s;
                var n = T(r[0], e);
                return i && (n = -n),
                n || 0
            },
            setTranslate: function(e, t) {
                var a = this
                  , i = a.rtlTranslate
                  , s = a.params
                  , r = a.$wrapperEl
                  , n = a.wrapperEl
                  , l = a.progress
                  , o = 0
                  , d = 0;
                a.isHorizontal() ? o = i ? -e : e : d = e,
                s.roundLengths && (o = Math.floor(o),
                d = Math.floor(d)),
                s.cssMode ? n[a.isHorizontal() ? "scrollLeft" : "scrollTop"] = a.isHorizontal() ? -o : -d : s.virtualTranslate || r.transform("translate3d(" + o + "px, " + d + "px, 0px)"),
                a.previousTranslate = a.translate,
                a.translate = a.isHorizontal() ? o : d;
                var p = a.maxTranslate() - a.minTranslate();
                (0 === p ? 0 : (e - a.minTranslate()) / p) !== l && a.updateProgress(e),
                a.emit("setTranslate", a.translate, t)
            },
            minTranslate: function() {
                return -this.snapGrid[0]
            },
            maxTranslate: function() {
                return -this.snapGrid[this.snapGrid.length - 1]
            },
            translateTo: function(e, t, a, i, s) {
                void 0 === e && (e = 0),
                void 0 === t && (t = this.params.speed),
                void 0 === a && (a = !0),
                void 0 === i && (i = !0);
                var r = this
                  , n = r.params
                  , l = r.wrapperEl;
                if (r.animating && n.preventInteractionOnTransition)
                    return !1;
                var o, d = r.minTranslate(), p = r.maxTranslate();
                if (o = i && e > d ? d : i && e < p ? p : e,
                r.updateProgress(o),
                n.cssMode) {
                    var u, c = r.isHorizontal();
                    if (0 === t)
                        l[c ? "scrollLeft" : "scrollTop"] = -o;
                    else if (l.scrollTo)
                        l.scrollTo(((u = {})[c ? "left" : "top"] = -o,
                        u.behavior = "smooth",
                        u));
                    else
                        l[c ? "scrollLeft" : "scrollTop"] = -o;
                    return !0
                }
                return 0 === t ? (r.setTransition(0),
                r.setTranslate(o),
                a && (r.emit("beforeTransitionStart", t, s),
                r.emit("transitionEnd"))) : (r.setTransition(t),
                r.setTranslate(o),
                a && (r.emit("beforeTransitionStart", t, s),
                r.emit("transitionStart")),
                r.animating || (r.animating = !0,
                r.onTranslateToWrapperTransitionEnd || (r.onTranslateToWrapperTransitionEnd = function(e) {
                    r && !r.destroyed && e.target === this && (r.$wrapperEl[0].removeEventListener("transitionend", r.onTranslateToWrapperTransitionEnd),
                    r.$wrapperEl[0].removeEventListener("webkitTransitionEnd", r.onTranslateToWrapperTransitionEnd),
                    r.onTranslateToWrapperTransitionEnd = null,
                    delete r.onTranslateToWrapperTransitionEnd,
                    a && r.emit("transitionEnd"))
                }
                ),
                r.$wrapperEl[0].addEventListener("transitionend", r.onTranslateToWrapperTransitionEnd),
                r.$wrapperEl[0].addEventListener("webkitTransitionEnd", r.onTranslateToWrapperTransitionEnd))),
                !0
            }
        },
        transition: {
            setTransition: function(e, t) {
                var a = this;
                a.params.cssMode || a.$wrapperEl.transition(e),
                a.emit("setTransition", e, t)
            },
            transitionStart: function(e, t) {
                void 0 === e && (e = !0);
                var a = this
                  , i = a.activeIndex
                  , s = a.params
                  , r = a.previousIndex;
                if (!s.cssMode) {
                    s.autoHeight && a.updateAutoHeight();
                    var n = t;
                    if (n || (n = i > r ? "next" : i < r ? "prev" : "reset"),
                    a.emit("transitionStart"),
                    e && i !== r) {
                        if ("reset" === n)
                            return void a.emit("slideResetTransitionStart");
                        a.emit("slideChangeTransitionStart"),
                        "next" === n ? a.emit("slideNextTransitionStart") : a.emit("slidePrevTransitionStart")
                    }
                }
            },
            transitionEnd: function(e, t) {
                void 0 === e && (e = !0);
                var a = this
                  , i = a.activeIndex
                  , s = a.previousIndex
                  , r = a.params;
                if (a.animating = !1,
                !r.cssMode) {
                    a.setTransition(0);
                    var n = t;
                    if (n || (n = i > s ? "next" : i < s ? "prev" : "reset"),
                    a.emit("transitionEnd"),
                    e && i !== s) {
                        if ("reset" === n)
                            return void a.emit("slideResetTransitionEnd");
                        a.emit("slideChangeTransitionEnd"),
                        "next" === n ? a.emit("slideNextTransitionEnd") : a.emit("slidePrevTransitionEnd")
                    }
                }
            }
        },
        slide: {
            slideTo: function(e, t, a, i) {
                if (void 0 === e && (e = 0),
                void 0 === t && (t = this.params.speed),
                void 0 === a && (a = !0),
                "number" != typeof e && "string" != typeof e)
                    throw new Error("The 'index' argument cannot have type other than 'number' or 'string'. [" + typeof e + "] given.");
                if ("string" == typeof e) {
                    var s = parseInt(e, 10);
                    if (!isFinite(s))
                        throw new Error("The passed-in 'index' (string) couldn't be converted to 'number'. [" + e + "] given.");
                    e = s
                }
                var r = this
                  , n = e;
                n < 0 && (n = 0);
                var l = r.params
                  , o = r.snapGrid
                  , d = r.slidesGrid
                  , p = r.previousIndex
                  , u = r.activeIndex
                  , c = r.rtlTranslate
                  , h = r.wrapperEl;
                if (r.animating && l.preventInteractionOnTransition)
                    return !1;
                var v = Math.min(r.params.slidesPerGroupSkip, n)
                  , f = v + Math.floor((n - v) / r.params.slidesPerGroup);
                f >= o.length && (f = o.length - 1),
                (u || l.initialSlide || 0) === (p || 0) && a && r.emit("beforeSlideChangeStart");
                var m, g = -o[f];
                if (r.updateProgress(g),
                l.normalizeSlideIndex)
                    for (var y = 0; y < d.length; y += 1)
                        -Math.floor(100 * g) >= Math.floor(100 * d[y]) && (n = y);
                if (r.initialized && n !== u) {
                    if (!r.allowSlideNext && g < r.translate && g < r.minTranslate())
                        return !1;
                    if (!r.allowSlidePrev && g > r.translate && g > r.maxTranslate() && (u || 0) !== n)
                        return !1
                }
                if (m = n > u ? "next" : n < u ? "prev" : "reset",
                c && -g === r.translate || !c && g === r.translate)
                    return r.updateActiveIndex(n),
                    l.autoHeight && r.updateAutoHeight(),
                    r.updateSlidesClasses(),
                    "slide" !== l.effect && r.setTranslate(g),
                    "reset" !== m && (r.transitionStart(a, m),
                    r.transitionEnd(a, m)),
                    !1;
                if (l.cssMode) {
                    var w, b = r.isHorizontal(), E = -g;
                    if (c && (E = h.scrollWidth - h.offsetWidth - E),
                    0 === t)
                        h[b ? "scrollLeft" : "scrollTop"] = E;
                    else if (h.scrollTo)
                        h.scrollTo(((w = {})[b ? "left" : "top"] = E,
                        w.behavior = "smooth",
                        w));
                    else
                        h[b ? "scrollLeft" : "scrollTop"] = E;
                    return !0
                }
                return 0 === t ? (r.setTransition(0),
                r.setTranslate(g),
                r.updateActiveIndex(n),
                r.updateSlidesClasses(),
                r.emit("beforeTransitionStart", t, i),
                r.transitionStart(a, m),
                r.transitionEnd(a, m)) : (r.setTransition(t),
                r.setTranslate(g),
                r.updateActiveIndex(n),
                r.updateSlidesClasses(),
                r.emit("beforeTransitionStart", t, i),
                r.transitionStart(a, m),
                r.animating || (r.animating = !0,
                r.onSlideToWrapperTransitionEnd || (r.onSlideToWrapperTransitionEnd = function(e) {
                    r && !r.destroyed && e.target === this && (r.$wrapperEl[0].removeEventListener("transitionend", r.onSlideToWrapperTransitionEnd),
                    r.$wrapperEl[0].removeEventListener("webkitTransitionEnd", r.onSlideToWrapperTransitionEnd),
                    r.onSlideToWrapperTransitionEnd = null,
                    delete r.onSlideToWrapperTransitionEnd,
                    r.transitionEnd(a, m))
                }
                ),
                r.$wrapperEl[0].addEventListener("transitionend", r.onSlideToWrapperTransitionEnd),
                r.$wrapperEl[0].addEventListener("webkitTransitionEnd", r.onSlideToWrapperTransitionEnd))),
                !0
            },
            slideToLoop: function(e, t, a, i) {
                void 0 === e && (e = 0),
                void 0 === t && (t = this.params.speed),
                void 0 === a && (a = !0);
                var s = this
                  , r = e;
                return s.params.loop && (r += s.loopedSlides),
                s.slideTo(r, t, a, i)
            },
            slideNext: function(e, t, a) {
                void 0 === e && (e = this.params.speed),
                void 0 === t && (t = !0);
                var i = this
                  , s = i.params
                  , r = i.animating
                  , n = i.activeIndex < s.slidesPerGroupSkip ? 1 : s.slidesPerGroup;
                if (s.loop) {
                    if (r && s.loopPreventsSlide)
                        return !1;
                    i.loopFix(),
                    i._clientLeft = i.$wrapperEl[0].clientLeft
                }
                return i.slideTo(i.activeIndex + n, e, t, a)
            },
            slidePrev: function(e, t, a) {
                void 0 === e && (e = this.params.speed),
                void 0 === t && (t = !0);
                var i = this
                  , s = i.params
                  , r = i.animating
                  , n = i.snapGrid
                  , l = i.slidesGrid
                  , o = i.rtlTranslate;
                if (s.loop) {
                    if (r && s.loopPreventsSlide)
                        return !1;
                    i.loopFix(),
                    i._clientLeft = i.$wrapperEl[0].clientLeft
                }
                function d(e) {
                    return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e)
                }
                var p, u = d(o ? i.translate : -i.translate), c = n.map((function(e) {
                    return d(e)
                }
                )), h = (n[c.indexOf(u)],
                n[c.indexOf(u) - 1]);
                return void 0 === h && s.cssMode && n.forEach((function(e) {
                    !h && u >= e && (h = e)
                }
                )),
                void 0 !== h && (p = l.indexOf(h)) < 0 && (p = i.activeIndex - 1),
                i.slideTo(p, e, t, a)
            },
            slideReset: function(e, t, a) {
                return void 0 === e && (e = this.params.speed),
                void 0 === t && (t = !0),
                this.slideTo(this.activeIndex, e, t, a)
            },
            slideToClosest: function(e, t, a, i) {
                void 0 === e && (e = this.params.speed),
                void 0 === t && (t = !0),
                void 0 === i && (i = .5);
                var s = this
                  , r = s.activeIndex
                  , n = Math.min(s.params.slidesPerGroupSkip, r)
                  , l = n + Math.floor((r - n) / s.params.slidesPerGroup)
                  , o = s.rtlTranslate ? s.translate : -s.translate;
                if (o >= s.snapGrid[l]) {
                    var d = s.snapGrid[l];
                    o - d > (s.snapGrid[l + 1] - d) * i && (r += s.params.slidesPerGroup)
                } else {
                    var p = s.snapGrid[l - 1];
                    o - p <= (s.snapGrid[l] - p) * i && (r -= s.params.slidesPerGroup)
                }
                return r = Math.max(r, 0),
                r = Math.min(r, s.slidesGrid.length - 1),
                s.slideTo(r, e, t, a)
            },
            slideToClickedSlide: function() {
                var e, t = this, a = t.params, i = t.$wrapperEl, s = "auto" === a.slidesPerView ? t.slidesPerViewDynamic() : a.slidesPerView, r = t.clickedIndex;
                if (a.loop) {
                    if (t.animating)
                        return;
                    e = parseInt(m(t.clickedSlide).attr("data-swiper-slide-index"), 10),
                    a.centeredSlides ? r < t.loopedSlides - s / 2 || r > t.slides.length - t.loopedSlides + s / 2 ? (t.loopFix(),
                    r = i.children("." + a.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + a.slideDuplicateClass + ")").eq(0).index(),
                    E((function() {
                        t.slideTo(r)
                    }
                    ))) : t.slideTo(r) : r > t.slides.length - s ? (t.loopFix(),
                    r = i.children("." + a.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + a.slideDuplicateClass + ")").eq(0).index(),
                    E((function() {
                        t.slideTo(r)
                    }
                    ))) : t.slideTo(r)
                } else
                    t.slideTo(r)
            }
        },
        loop: {
            loopCreate: function() {
                var e = this
                  , t = r()
                  , a = e.params
                  , i = e.$wrapperEl;
                i.children("." + a.slideClass + "." + a.slideDuplicateClass).remove();
                var s = i.children("." + a.slideClass);
                if (a.loopFillGroupWithBlank) {
                    var n = a.slidesPerGroup - s.length % a.slidesPerGroup;
                    if (n !== a.slidesPerGroup) {
                        for (var l = 0; l < n; l += 1) {
                            var o = m(t.createElement("div")).addClass(a.slideClass + " " + a.slideBlankClass);
                            i.append(o)
                        }
                        s = i.children("." + a.slideClass)
                    }
                }
                "auto" !== a.slidesPerView || a.loopedSlides || (a.loopedSlides = s.length),
                e.loopedSlides = Math.ceil(parseFloat(a.loopedSlides || a.slidesPerView, 10)),
                e.loopedSlides += a.loopAdditionalSlides,
                e.loopedSlides > s.length && (e.loopedSlides = s.length);
                var d = []
                  , p = [];
                s.each((function(t, a) {
                    var i = m(t);
                    a < e.loopedSlides && p.push(t),
                    a < s.length && a >= s.length - e.loopedSlides && d.push(t),
                    i.attr("data-swiper-slide-index", a)
                }
                ));
                for (var u = 0; u < p.length; u += 1)
                    i.append(m(p[u].cloneNode(!0)).addClass(a.slideDuplicateClass));
                for (var c = d.length - 1; c >= 0; c -= 1)
                    i.prepend(m(d[c].cloneNode(!0)).addClass(a.slideDuplicateClass))
            },
            loopFix: function() {
                var e = this;
                e.emit("beforeLoopFix");
                var t, a = e.activeIndex, i = e.slides, s = e.loopedSlides, r = e.allowSlidePrev, n = e.allowSlideNext, l = e.snapGrid, o = e.rtlTranslate;
                e.allowSlidePrev = !0,
                e.allowSlideNext = !0;
                var d = -l[a] - e.getTranslate();
                if (a < s)
                    t = i.length - 3 * s + a,
                    t += s,
                    e.slideTo(t, 0, !1, !0) && 0 !== d && e.setTranslate((o ? -e.translate : e.translate) - d);
                else if (a >= i.length - s) {
                    t = -i.length + a + s,
                    t += s,
                    e.slideTo(t, 0, !1, !0) && 0 !== d && e.setTranslate((o ? -e.translate : e.translate) - d)
                }
                e.allowSlidePrev = r,
                e.allowSlideNext = n,
                e.emit("loopFix")
            },
            loopDestroy: function() {
                var e = this
                  , t = e.$wrapperEl
                  , a = e.params
                  , i = e.slides;
                t.children("." + a.slideClass + "." + a.slideDuplicateClass + ",." + a.slideClass + "." + a.slideBlankClass).remove(),
                i.removeAttr("data-swiper-slide-index")
            }
        },
        grabCursor: {
            setGrabCursor: function(e) {
                var t = this;
                if (!(t.support.touch || !t.params.simulateTouch || t.params.watchOverflow && t.isLocked || t.params.cssMode)) {
                    var a = t.el;
                    a.style.cursor = "move",
                    a.style.cursor = e ? "-webkit-grabbing" : "-webkit-grab",
                    a.style.cursor = e ? "-moz-grabbin" : "-moz-grab",
                    a.style.cursor = e ? "grabbing" : "grab"
                }
            },
            unsetGrabCursor: function() {
                var e = this;
                e.support.touch || e.params.watchOverflow && e.isLocked || e.params.cssMode || (e.el.style.cursor = "")
            }
        },
        manipulation: {
            appendSlide: function(e) {
                var t = this
                  , a = t.$wrapperEl
                  , i = t.params;
                if (i.loop && t.loopDestroy(),
                "object" == typeof e && "length"in e)
                    for (var s = 0; s < e.length; s += 1)
                        e[s] && a.append(e[s]);
                else
                    a.append(e);
                i.loop && t.loopCreate(),
                i.observer && t.support.observer || t.update()
            },
            prependSlide: function(e) {
                var t = this
                  , a = t.params
                  , i = t.$wrapperEl
                  , s = t.activeIndex;
                a.loop && t.loopDestroy();
                var r = s + 1;
                if ("object" == typeof e && "length"in e) {
                    for (var n = 0; n < e.length; n += 1)
                        e[n] && i.prepend(e[n]);
                    r = s + e.length
                } else
                    i.prepend(e);
                a.loop && t.loopCreate(),
                a.observer && t.support.observer || t.update(),
                t.slideTo(r, 0, !1)
            },
            addSlide: function(e, t) {
                var a = this
                  , i = a.$wrapperEl
                  , s = a.params
                  , r = a.activeIndex;
                s.loop && (r -= a.loopedSlides,
                a.loopDestroy(),
                a.slides = i.children("." + s.slideClass));
                var n = a.slides.length;
                if (e <= 0)
                    a.prependSlide(t);
                else if (e >= n)
                    a.appendSlide(t);
                else {
                    for (var l = r > e ? r + 1 : r, o = [], d = n - 1; d >= e; d -= 1) {
                        var p = a.slides.eq(d);
                        p.remove(),
                        o.unshift(p)
                    }
                    if ("object" == typeof t && "length"in t) {
                        for (var u = 0; u < t.length; u += 1)
                            t[u] && i.append(t[u]);
                        l = r > e ? r + t.length : r
                    } else
                        i.append(t);
                    for (var c = 0; c < o.length; c += 1)
                        i.append(o[c]);
                    s.loop && a.loopCreate(),
                    s.observer && a.support.observer || a.update(),
                    s.loop ? a.slideTo(l + a.loopedSlides, 0, !1) : a.slideTo(l, 0, !1)
                }
            },
            removeSlide: function(e) {
                var t = this
                  , a = t.params
                  , i = t.$wrapperEl
                  , s = t.activeIndex;
                a.loop && (s -= t.loopedSlides,
                t.loopDestroy(),
                t.slides = i.children("." + a.slideClass));
                var r, n = s;
                if ("object" == typeof e && "length"in e) {
                    for (var l = 0; l < e.length; l += 1)
                        r = e[l],
                        t.slides[r] && t.slides.eq(r).remove(),
                        r < n && (n -= 1);
                    n = Math.max(n, 0)
                } else
                    r = e,
                    t.slides[r] && t.slides.eq(r).remove(),
                    r < n && (n -= 1),
                    n = Math.max(n, 0);
                a.loop && t.loopCreate(),
                a.observer && t.support.observer || t.update(),
                a.loop ? t.slideTo(n + t.loopedSlides, 0, !1) : t.slideTo(n, 0, !1)
            },
            removeAllSlides: function() {
                for (var e = [], t = 0; t < this.slides.length; t += 1)
                    e.push(t);
                this.removeSlide(e)
            }
        },
        events: {
            attachEvents: function() {
                var e = this
                  , t = r()
                  , a = e.params
                  , i = e.touchEvents
                  , s = e.el
                  , n = e.wrapperEl
                  , l = e.device
                  , o = e.support;
                e.onTouchStart = O.bind(e),
                e.onTouchMove = A.bind(e),
                e.onTouchEnd = D.bind(e),
                a.cssMode && (e.onScroll = B.bind(e)),
                e.onClick = N.bind(e);
                var d = !!a.nested;
                if (!o.touch && o.pointerEvents)
                    s.addEventListener(i.start, e.onTouchStart, !1),
                    t.addEventListener(i.move, e.onTouchMove, d),
                    t.addEventListener(i.end, e.onTouchEnd, !1);
                else {
                    if (o.touch) {
                        var p = !("touchstart" !== i.start || !o.passiveListener || !a.passiveListeners) && {
                            passive: !0,
                            capture: !1
                        };
                        s.addEventListener(i.start, e.onTouchStart, p),
                        s.addEventListener(i.move, e.onTouchMove, o.passiveListener ? {
                            passive: !1,
                            capture: d
                        } : d),
                        s.addEventListener(i.end, e.onTouchEnd, p),
                        i.cancel && s.addEventListener(i.cancel, e.onTouchEnd, p),
                        H || (t.addEventListener("touchstart", X),
                        H = !0)
                    }
                    (a.simulateTouch && !l.ios && !l.android || a.simulateTouch && !o.touch && l.ios) && (s.addEventListener("mousedown", e.onTouchStart, !1),
                    t.addEventListener("mousemove", e.onTouchMove, d),
                    t.addEventListener("mouseup", e.onTouchEnd, !1))
                }
                (a.preventClicks || a.preventClicksPropagation) && s.addEventListener("click", e.onClick, !0),
                a.cssMode && n.addEventListener("scroll", e.onScroll),
                a.updateOnWindowResize ? e.on(l.ios || l.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", G, !0) : e.on("observerUpdate", G, !0)
            },
            detachEvents: function() {
                var e = this
                  , t = r()
                  , a = e.params
                  , i = e.touchEvents
                  , s = e.el
                  , n = e.wrapperEl
                  , l = e.device
                  , o = e.support
                  , d = !!a.nested;
                if (!o.touch && o.pointerEvents)
                    s.removeEventListener(i.start, e.onTouchStart, !1),
                    t.removeEventListener(i.move, e.onTouchMove, d),
                    t.removeEventListener(i.end, e.onTouchEnd, !1);
                else {
                    if (o.touch) {
                        var p = !("onTouchStart" !== i.start || !o.passiveListener || !a.passiveListeners) && {
                            passive: !0,
                            capture: !1
                        };
                        s.removeEventListener(i.start, e.onTouchStart, p),
                        s.removeEventListener(i.move, e.onTouchMove, d),
                        s.removeEventListener(i.end, e.onTouchEnd, p),
                        i.cancel && s.removeEventListener(i.cancel, e.onTouchEnd, p)
                    }
                    (a.simulateTouch && !l.ios && !l.android || a.simulateTouch && !o.touch && l.ios) && (s.removeEventListener("mousedown", e.onTouchStart, !1),
                    t.removeEventListener("mousemove", e.onTouchMove, d),
                    t.removeEventListener("mouseup", e.onTouchEnd, !1))
                }
                (a.preventClicks || a.preventClicksPropagation) && s.removeEventListener("click", e.onClick, !0),
                a.cssMode && n.removeEventListener("scroll", e.onScroll),
                e.off(l.ios || l.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", G)
            }
        },
        breakpoints: {
            setBreakpoint: function() {
                var e = this
                  , t = e.activeIndex
                  , a = e.initialized
                  , i = e.loopedSlides
                  , s = void 0 === i ? 0 : i
                  , r = e.params
                  , n = e.$el
                  , l = r.breakpoints;
                if (l && (!l || 0 !== Object.keys(l).length)) {
                    var o = e.getBreakpoint(l);
                    if (o && e.currentBreakpoint !== o) {
                        var d = o in l ? l[o] : void 0;
                        d && ["slidesPerView", "spaceBetween", "slidesPerGroup", "slidesPerGroupSkip", "slidesPerColumn"].forEach((function(e) {
                            var t = d[e];
                            void 0 !== t && (d[e] = "slidesPerView" !== e || "AUTO" !== t && "auto" !== t ? "slidesPerView" === e ? parseFloat(t) : parseInt(t, 10) : "auto")
                        }
                        ));
                        var p = d || e.originalParams
                          , u = r.slidesPerColumn > 1
                          , c = p.slidesPerColumn > 1;
                        u && !c ? (n.removeClass(r.containerModifierClass + "multirow " + r.containerModifierClass + "multirow-column"),
                        e.emitContainerClasses()) : !u && c && (n.addClass(r.containerModifierClass + "multirow"),
                        "column" === p.slidesPerColumnFill && n.addClass(r.containerModifierClass + "multirow-column"),
                        e.emitContainerClasses());
                        var h = p.direction && p.direction !== r.direction
                          , v = r.loop && (p.slidesPerView !== r.slidesPerView || h);
                        h && a && e.changeDirection(),
                        S(e.params, p),
                        S(e, {
                            allowTouchMove: e.params.allowTouchMove,
                            allowSlideNext: e.params.allowSlideNext,
                            allowSlidePrev: e.params.allowSlidePrev
                        }),
                        e.currentBreakpoint = o,
                        e.emit("_beforeBreakpoint", p),
                        v && a && (e.loopDestroy(),
                        e.loopCreate(),
                        e.updateSlides(),
                        e.slideTo(t - s + e.loopedSlides, 0, !1)),
                        e.emit("breakpoint", p)
                    }
                }
            },
            getBreakpoint: function(e) {
                var t = l();
                if (e) {
                    var a = !1
                      , i = Object.keys(e).map((function(e) {
                        if ("string" == typeof e && 0 === e.indexOf("@")) {
                            var a = parseFloat(e.substr(1));
                            return {
                                value: t.innerHeight * a,
                                point: e
                            }
                        }
                        return {
                            value: e,
                            point: e
                        }
                    }
                    ));
                    i.sort((function(e, t) {
                        return parseInt(e.value, 10) - parseInt(t.value, 10)
                    }
                    ));
                    for (var s = 0; s < i.length; s += 1) {
                        var r = i[s]
                          , n = r.point;
                        r.value <= t.innerWidth && (a = n)
                    }
                    return a || "max"
                }
            }
        },
        checkOverflow: {
            checkOverflow: function() {
                var e = this
                  , t = e.params
                  , a = e.isLocked
                  , i = e.slides.length > 0 && t.slidesOffsetBefore + t.spaceBetween * (e.slides.length - 1) + e.slides[0].offsetWidth * e.slides.length;
                t.slidesOffsetBefore && t.slidesOffsetAfter && i ? e.isLocked = i <= e.size : e.isLocked = 1 === e.snapGrid.length,
                e.allowSlideNext = !e.isLocked,
                e.allowSlidePrev = !e.isLocked,
                a !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock"),
                a && a !== e.isLocked && (e.isEnd = !1,
                e.navigation && e.navigation.update())
            }
        },
        classes: {
            addClasses: function() {
                var e = this
                  , t = e.classNames
                  , a = e.params
                  , i = e.rtl
                  , s = e.$el
                  , r = e.device
                  , n = [];
                n.push("initialized"),
                n.push(a.direction),
                a.freeMode && n.push("free-mode"),
                a.autoHeight && n.push("autoheight"),
                i && n.push("rtl"),
                a.slidesPerColumn > 1 && (n.push("multirow"),
                "column" === a.slidesPerColumnFill && n.push("multirow-column")),
                r.android && n.push("android"),
                r.ios && n.push("ios"),
                a.cssMode && n.push("css-mode"),
                n.forEach((function(e) {
                    t.push(a.containerModifierClass + e)
                }
                )),
                s.addClass(t.join(" ")),
                e.emitContainerClasses()
            },
            removeClasses: function() {
                var e = this
                  , t = e.$el
                  , a = e.classNames;
                t.removeClass(a.join(" ")),
                e.emitContainerClasses()
            }
        },
        images: {
            loadImage: function(e, t, a, i, s, r) {
                var n, o = l();
                function d() {
                    r && r()
                }
                m(e).parent("picture")[0] || e.complete && s ? d() : t ? ((n = new o.Image).onload = d,
                n.onerror = d,
                i && (n.sizes = i),
                a && (n.srcset = a),
                t && (n.src = t)) : d()
            },
            preloadImages: function() {
                var e = this;
                function t() {
                    null != e && e && !e.destroyed && (void 0 !== e.imagesLoaded && (e.imagesLoaded += 1),
                    e.imagesLoaded === e.imagesToLoad.length && (e.params.updateOnImagesReady && e.update(),
                    e.emit("imagesReady")))
                }
                e.imagesToLoad = e.$el.find("img");
                for (var a = 0; a < e.imagesToLoad.length; a += 1) {
                    var i = e.imagesToLoad[a];
                    e.loadImage(i, i.currentSrc || i.getAttribute("src"), i.srcset || i.getAttribute("srcset"), i.sizes || i.getAttribute("sizes"), !0, t)
                }
            }
        }
    }
      , F = {}
      , R = function() {
        function t() {
            for (var e, a, i = arguments.length, s = new Array(i), r = 0; r < i; r++)
                s[r] = arguments[r];
            1 === s.length && s[0].constructor && s[0].constructor === Object ? a = s[0] : (e = s[0],
            a = s[1]),
            a || (a = {}),
            a = S({}, a),
            e && !a.el && (a.el = e);
            var n = this;
            n.support = z(),
            n.device = P({
                userAgent: a.userAgent
            }),
            n.browser = k(),
            n.eventsListeners = {},
            n.eventsAnyListeners = [],
            void 0 === n.modules && (n.modules = {}),
            Object.keys(n.modules).forEach((function(e) {
                var t = n.modules[e];
                if (t.params) {
                    var i = Object.keys(t.params)[0]
                      , s = t.params[i];
                    if ("object" != typeof s || null === s)
                        return;
                    if (!(i in a) || !("enabled"in s))
                        return;
                    !0 === a[i] && (a[i] = {
                        enabled: !0
                    }),
                    "object" != typeof a[i] || "enabled"in a[i] || (a[i].enabled = !0),
                    a[i] || (a[i] = {
                        enabled: !1
                    })
                }
            }
            ));
            var l = S({}, Y);
            n.useParams(l),
            n.params = S({}, l, F, a),
            n.originalParams = S({}, n.params),
            n.passedParams = S({}, a),
            n.params && n.params.on && Object.keys(n.params.on).forEach((function(e) {
                n.on(e, n.params.on[e])
            }
            )),
            n.params && n.params.onAny && n.onAny(n.params.onAny),
            n.$ = m;
            var o = m(n.params.el);
            if (e = o[0]) {
                if (o.length > 1) {
                    var d = [];
                    return o.each((function(e) {
                        var i = S({}, a, {
                            el: e
                        });
                        d.push(new t(i))
                    }
                    )),
                    d
                }
                var p, u, c;
                return e.swiper = n,
                e && e.shadowRoot && e.shadowRoot.querySelector ? (p = m(e.shadowRoot.querySelector("." + n.params.wrapperClass))).children = function(e) {
                    return o.children(e)
                }
                : p = o.children("." + n.params.wrapperClass),
                S(n, {
                    $el: o,
                    el: e,
                    $wrapperEl: p,
                    wrapperEl: p[0],
                    classNames: [],
                    slides: m(),
                    slidesGrid: [],
                    snapGrid: [],
                    slidesSizesGrid: [],
                    isHorizontal: function() {
                        return "horizontal" === n.params.direction
                    },
                    isVertical: function() {
                        return "vertical" === n.params.direction
                    },
                    rtl: "rtl" === e.dir.toLowerCase() || "rtl" === o.css("direction"),
                    rtlTranslate: "horizontal" === n.params.direction && ("rtl" === e.dir.toLowerCase() || "rtl" === o.css("direction")),
                    wrongRTL: "-webkit-box" === p.css("display"),
                    activeIndex: 0,
                    realIndex: 0,
                    isBeginning: !0,
                    isEnd: !1,
                    translate: 0,
                    previousTranslate: 0,
                    progress: 0,
                    velocity: 0,
                    animating: !1,
                    allowSlideNext: n.params.allowSlideNext,
                    allowSlidePrev: n.params.allowSlidePrev,
                    touchEvents: (u = ["touchstart", "touchmove", "touchend", "touchcancel"],
                    c = ["mousedown", "mousemove", "mouseup"],
                    n.support.pointerEvents && (c = ["pointerdown", "pointermove", "pointerup"]),
                    n.touchEventsTouch = {
                        start: u[0],
                        move: u[1],
                        end: u[2],
                        cancel: u[3]
                    },
                    n.touchEventsDesktop = {
                        start: c[0],
                        move: c[1],
                        end: c[2]
                    },
                    n.support.touch || !n.params.simulateTouch ? n.touchEventsTouch : n.touchEventsDesktop),
                    touchEventsData: {
                        isTouched: void 0,
                        isMoved: void 0,
                        allowTouchCallbacks: void 0,
                        touchStartTime: void 0,
                        isScrolling: void 0,
                        currentTranslate: void 0,
                        startTranslate: void 0,
                        allowThresholdMove: void 0,
                        formElements: "input, select, option, textarea, button, video, label",
                        lastClickTime: x(),
                        clickTimeout: void 0,
                        velocities: [],
                        allowMomentumBounce: void 0,
                        isTouchEvent: void 0,
                        startMoving: void 0
                    },
                    allowClick: !0,
                    allowTouchMove: n.params.allowTouchMove,
                    touches: {
                        startX: 0,
                        startY: 0,
                        currentX: 0,
                        currentY: 0,
                        diff: 0
                    },
                    imagesToLoad: [],
                    imagesLoaded: 0
                }),
                n.useModules(),
                n.emit("_swiper"),
                n.params.init && n.init(),
                n
            }
        }
        var a, i, s, r = t.prototype;
        return r.emitContainerClasses = function() {
            var e = this;
            if (e.params._emitClasses && e.el) {
                var t = e.el.className.split(" ").filter((function(t) {
                    return 0 === t.indexOf("swiper-container") || 0 === t.indexOf(e.params.containerModifierClass)
                }
                ));
                e.emit("_containerClasses", t.join(" "))
            }
        }
        ,
        r.getSlideClasses = function(e) {
            var t = this;
            return e.className.split(" ").filter((function(e) {
                return 0 === e.indexOf("swiper-slide") || 0 === e.indexOf(t.params.slideClass)
            }
            )).join(" ")
        }
        ,
        r.emitSlidesClasses = function() {
            var e = this;
            e.params._emitClasses && e.el && e.slides.each((function(t) {
                var a = e.getSlideClasses(t);
                e.emit("_slideClass", t, a)
            }
            ))
        }
        ,
        r.slidesPerViewDynamic = function() {
            var e = this
              , t = e.params
              , a = e.slides
              , i = e.slidesGrid
              , s = e.size
              , r = e.activeIndex
              , n = 1;
            if (t.centeredSlides) {
                for (var l, o = a[r].swiperSlideSize, d = r + 1; d < a.length; d += 1)
                    a[d] && !l && (n += 1,
                    (o += a[d].swiperSlideSize) > s && (l = !0));
                for (var p = r - 1; p >= 0; p -= 1)
                    a[p] && !l && (n += 1,
                    (o += a[p].swiperSlideSize) > s && (l = !0))
            } else
                for (var u = r + 1; u < a.length; u += 1)
                    i[u] - i[r] < s && (n += 1);
            return n
        }
        ,
        r.update = function() {
            var e = this;
            if (e && !e.destroyed) {
                var t = e.snapGrid
                  , a = e.params;
                a.breakpoints && e.setBreakpoint(),
                e.updateSize(),
                e.updateSlides(),
                e.updateProgress(),
                e.updateSlidesClasses(),
                e.params.freeMode ? (i(),
                e.params.autoHeight && e.updateAutoHeight()) : (("auto" === e.params.slidesPerView || e.params.slidesPerView > 1) && e.isEnd && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0)) || i(),
                a.watchOverflow && t !== e.snapGrid && e.checkOverflow(),
                e.emit("update")
            }
            function i() {
                var t = e.rtlTranslate ? -1 * e.translate : e.translate
                  , a = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate());
                e.setTranslate(a),
                e.updateActiveIndex(),
                e.updateSlidesClasses()
            }
        }
        ,
        r.changeDirection = function(e, t) {
            void 0 === t && (t = !0);
            var a = this
              , i = a.params.direction;
            return e || (e = "horizontal" === i ? "vertical" : "horizontal"),
            e === i || "horizontal" !== e && "vertical" !== e || (a.$el.removeClass("" + a.params.containerModifierClass + i).addClass("" + a.params.containerModifierClass + e),
            a.emitContainerClasses(),
            a.params.direction = e,
            a.slides.each((function(t) {
                "vertical" === e ? t.style.width = "" : t.style.height = ""
            }
            )),
            a.emit("changeDirection"),
            t && a.update()),
            a
        }
        ,
        r.init = function() {
            var e = this;
            e.initialized || (e.emit("beforeInit"),
            e.params.breakpoints && e.setBreakpoint(),
            e.addClasses(),
            e.params.loop && e.loopCreate(),
            e.updateSize(),
            e.updateSlides(),
            e.params.watchOverflow && e.checkOverflow(),
            e.params.grabCursor && e.setGrabCursor(),
            e.params.preloadImages && e.preloadImages(),
            e.params.loop ? e.slideTo(e.params.initialSlide + e.loopedSlides, 0, e.params.runCallbacksOnInit) : e.slideTo(e.params.initialSlide, 0, e.params.runCallbacksOnInit),
            e.attachEvents(),
            e.initialized = !0,
            e.emit("init"),
            e.emit("afterInit"))
        }
        ,
        r.destroy = function(e, t) {
            void 0 === e && (e = !0),
            void 0 === t && (t = !0);
            var a, i = this, s = i.params, r = i.$el, n = i.$wrapperEl, l = i.slides;
            return void 0 === i.params || i.destroyed || (i.emit("beforeDestroy"),
            i.initialized = !1,
            i.detachEvents(),
            s.loop && i.loopDestroy(),
            t && (i.removeClasses(),
            r.removeAttr("style"),
            n.removeAttr("style"),
            l && l.length && l.removeClass([s.slideVisibleClass, s.slideActiveClass, s.slideNextClass, s.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),
            i.emit("destroy"),
            Object.keys(i.eventsListeners).forEach((function(e) {
                i.off(e)
            }
            )),
            !1 !== e && (i.$el[0].swiper = null,
            a = i,
            Object.keys(a).forEach((function(e) {
                try {
                    a[e] = null
                } catch (e) {}
                try {
                    delete a[e]
                } catch (e) {}
            }
            ))),
            i.destroyed = !0),
            null
        }
        ,
        t.extendDefaults = function(e) {
            S(F, e)
        }
        ,
        t.installModule = function(e) {
            t.prototype.modules || (t.prototype.modules = {});
            var a = e.name || Object.keys(t.prototype.modules).length + "_" + x();
            t.prototype.modules[a] = e
        }
        ,
        t.use = function(e) {
            return Array.isArray(e) ? (e.forEach((function(e) {
                return t.installModule(e)
            }
            )),
            t) : (t.installModule(e),
            t)
        }
        ,
        a = t,
        s = [{
            key: "extendedDefaults",
            get: function() {
                return F
            }
        }, {
            key: "defaults",
            get: function() {
                return Y
            }
        }],
        (i = null) && e(a.prototype, i),
        s && e(a, s),
        t
    }();
    Object.keys(V).forEach((function(e) {
        Object.keys(V[e]).forEach((function(t) {
            R.prototype[t] = V[e][t]
        }
        ))
    }
    )),
    R.use([L, I]);
    var W = {
        update: function(e) {
            var t = this
              , a = t.params
              , i = a.slidesPerView
              , s = a.slidesPerGroup
              , r = a.centeredSlides
              , n = t.params.virtual
              , l = n.addSlidesBefore
              , o = n.addSlidesAfter
              , d = t.virtual
              , p = d.from
              , u = d.to
              , c = d.slides
              , h = d.slidesGrid
              , v = d.renderSlide
              , f = d.offset;
            t.updateActiveIndex();
            var m, g, y, w = t.activeIndex || 0;
            m = t.rtlTranslate ? "right" : t.isHorizontal() ? "left" : "top",
            r ? (g = Math.floor(i / 2) + s + o,
            y = Math.floor(i / 2) + s + l) : (g = i + (s - 1) + o,
            y = s + l);
            var b = Math.max((w || 0) - y, 0)
              , E = Math.min((w || 0) + g, c.length - 1)
              , x = (t.slidesGrid[b] || 0) - (t.slidesGrid[0] || 0);
            function T() {
                t.updateSlides(),
                t.updateProgress(),
                t.updateSlidesClasses(),
                t.lazy && t.params.lazy.enabled && t.lazy.load()
            }
            if (S(t.virtual, {
                from: b,
                to: E,
                offset: x,
                slidesGrid: t.slidesGrid
            }),
            p === b && u === E && !e)
                return t.slidesGrid !== h && x !== f && t.slides.css(m, x + "px"),
                void t.updateProgress();
            if (t.params.virtual.renderExternal)
                return t.params.virtual.renderExternal.call(t, {
                    offset: x,
                    from: b,
                    to: E,
                    slides: function() {
                        for (var e = [], t = b; t <= E; t += 1)
                            e.push(c[t]);
                        return e
                    }()
                }),
                void (t.params.virtual.renderExternalUpdate && T());
            var C = []
              , M = [];
            if (e)
                t.$wrapperEl.find("." + t.params.slideClass).remove();
            else
                for (var z = p; z <= u; z += 1)
                    (z < b || z > E) && t.$wrapperEl.find("." + t.params.slideClass + '[data-swiper-slide-index="' + z + '"]').remove();
            for (var P = 0; P < c.length; P += 1)
                P >= b && P <= E && (void 0 === u || e ? M.push(P) : (P > u && M.push(P),
                P < p && C.push(P)));
            M.forEach((function(e) {
                t.$wrapperEl.append(v(c[e], e))
            }
            )),
            C.sort((function(e, t) {
                return t - e
            }
            )).forEach((function(e) {
                t.$wrapperEl.prepend(v(c[e], e))
            }
            )),
            t.$wrapperEl.children(".swiper-slide").css(m, x + "px"),
            T()
        },
        renderSlide: function(e, t) {
            var a = this
              , i = a.params.virtual;
            if (i.cache && a.virtual.cache[t])
                return a.virtual.cache[t];
            var s = i.renderSlide ? m(i.renderSlide.call(a, e, t)) : m('<div class="' + a.params.slideClass + '" data-swiper-slide-index="' + t + '">' + e + "</div>");
            return s.attr("data-swiper-slide-index") || s.attr("data-swiper-slide-index", t),
            i.cache && (a.virtual.cache[t] = s),
            s
        },
        appendSlide: function(e) {
            var t = this;
            if ("object" == typeof e && "length"in e)
                for (var a = 0; a < e.length; a += 1)
                    e[a] && t.virtual.slides.push(e[a]);
            else
                t.virtual.slides.push(e);
            t.virtual.update(!0)
        },
        prependSlide: function(e) {
            var t = this
              , a = t.activeIndex
              , i = a + 1
              , s = 1;
            if (Array.isArray(e)) {
                for (var r = 0; r < e.length; r += 1)
                    e[r] && t.virtual.slides.unshift(e[r]);
                i = a + e.length,
                s = e.length
            } else
                t.virtual.slides.unshift(e);
            if (t.params.virtual.cache) {
                var n = t.virtual.cache
                  , l = {};
                Object.keys(n).forEach((function(e) {
                    var t = n[e]
                      , a = t.attr("data-swiper-slide-index");
                    a && t.attr("data-swiper-slide-index", parseInt(a, 10) + 1),
                    l[parseInt(e, 10) + s] = t
                }
                )),
                t.virtual.cache = l
            }
            t.virtual.update(!0),
            t.slideTo(i, 0)
        },
        removeSlide: function(e) {
            var t = this;
            if (null != e) {
                var a = t.activeIndex;
                if (Array.isArray(e))
                    for (var i = e.length - 1; i >= 0; i -= 1)
                        t.virtual.slides.splice(e[i], 1),
                        t.params.virtual.cache && delete t.virtual.cache[e[i]],
                        e[i] < a && (a -= 1),
                        a = Math.max(a, 0);
                else
                    t.virtual.slides.splice(e, 1),
                    t.params.virtual.cache && delete t.virtual.cache[e],
                    e < a && (a -= 1),
                    a = Math.max(a, 0);
                t.virtual.update(!0),
                t.slideTo(a, 0)
            }
        },
        removeAllSlides: function() {
            var e = this;
            e.virtual.slides = [],
            e.params.virtual.cache && (e.virtual.cache = {}),
            e.virtual.update(!0),
            e.slideTo(0, 0)
        }
    }
      , q = {
        name: "virtual",
        params: {
            virtual: {
                enabled: !1,
                slides: [],
                cache: !0,
                renderSlide: null,
                renderExternal: null,
                renderExternalUpdate: !0,
                addSlidesBefore: 0,
                addSlidesAfter: 0
            }
        },
        create: function() {
            M(this, {
                virtual: t({}, W, {
                    slides: this.params.virtual.slides,
                    cache: {}
                })
            })
        },
        on: {
            beforeInit: function(e) {
                if (e.params.virtual.enabled) {
                    e.classNames.push(e.params.containerModifierClass + "virtual");
                    var t = {
                        watchSlidesProgress: !0
                    };
                    S(e.params, t),
                    S(e.originalParams, t),
                    e.params.initialSlide || e.virtual.update()
                }
            },
            setTranslate: function(e) {
                e.params.virtual.enabled && e.virtual.update()
            }
        }
    }
      , j = {
        handle: function(e) {
            var t = this
              , a = l()
              , i = r()
              , s = t.rtlTranslate
              , n = e;
            n.originalEvent && (n = n.originalEvent);
            var o = n.keyCode || n.charCode
              , d = t.params.keyboard.pageUpDown
              , p = d && 33 === o
              , u = d && 34 === o
              , c = 37 === o
              , h = 39 === o
              , v = 38 === o
              , f = 40 === o;
            if (!t.allowSlideNext && (t.isHorizontal() && h || t.isVertical() && f || u))
                return !1;
            if (!t.allowSlidePrev && (t.isHorizontal() && c || t.isVertical() && v || p))
                return !1;
            if (!(n.shiftKey || n.altKey || n.ctrlKey || n.metaKey || i.activeElement && i.activeElement.nodeName && ("input" === i.activeElement.nodeName.toLowerCase() || "textarea" === i.activeElement.nodeName.toLowerCase()))) {
                if (t.params.keyboard.onlyInViewport && (p || u || c || h || v || f)) {
                    var m = !1;
                    if (t.$el.parents("." + t.params.slideClass).length > 0 && 0 === t.$el.parents("." + t.params.slideActiveClass).length)
                        return;
                    var g = a.innerWidth
                      , y = a.innerHeight
                      , w = t.$el.offset();
                    s && (w.left -= t.$el[0].scrollLeft);
                    for (var b = [[w.left, w.top], [w.left + t.width, w.top], [w.left, w.top + t.height], [w.left + t.width, w.top + t.height]], E = 0; E < b.length; E += 1) {
                        var x = b[E];
                        if (x[0] >= 0 && x[0] <= g && x[1] >= 0 && x[1] <= y) {
                            if (0 === x[0] && 0 === x[1])
                                continue;
                            m = !0
                        }
                    }
                    if (!m)
                        return
                }
                t.isHorizontal() ? ((p || u || c || h) && (n.preventDefault ? n.preventDefault() : n.returnValue = !1),
                ((u || h) && !s || (p || c) && s) && t.slideNext(),
                ((p || c) && !s || (u || h) && s) && t.slidePrev()) : ((p || u || v || f) && (n.preventDefault ? n.preventDefault() : n.returnValue = !1),
                (u || f) && t.slideNext(),
                (p || v) && t.slidePrev()),
                t.emit("keyPress", o)
            }
        },
        enable: function() {
            var e = this
              , t = r();
            e.keyboard.enabled || (m(t).on("keydown", e.keyboard.handle),
            e.keyboard.enabled = !0)
        },
        disable: function() {
            var e = this
              , t = r();
            e.keyboard.enabled && (m(t).off("keydown", e.keyboard.handle),
            e.keyboard.enabled = !1)
        }
    }
      , _ = {
        name: "keyboard",
        params: {
            keyboard: {
                enabled: !1,
                onlyInViewport: !0,
                pageUpDown: !0
            }
        },
        create: function() {
            M(this, {
                keyboard: t({
                    enabled: !1
                }, j)
            })
        },
        on: {
            init: function(e) {
                e.params.keyboard.enabled && e.keyboard.enable()
            },
            destroy: function(e) {
                e.keyboard.enabled && e.keyboard.disable()
            }
        }
    };
    var U = {
        lastScrollTime: x(),
        lastEventBeforeSnap: void 0,
        recentWheelEvents: [],
        event: function() {
            return l().navigator.userAgent.indexOf("firefox") > -1 ? "DOMMouseScroll" : function() {
                var e = r()
                  , t = "onwheel"
                  , a = t in e;
                if (!a) {
                    var i = e.createElement("div");
                    i.setAttribute(t, "return;"),
                    a = "function" == typeof i.onwheel
                }
                return !a && e.implementation && e.implementation.hasFeature && !0 !== e.implementation.hasFeature("", "") && (a = e.implementation.hasFeature("Events.wheel", "3.0")),
                a
            }() ? "wheel" : "mousewheel"
        },
        normalize: function(e) {
            var t = 0
              , a = 0
              , i = 0
              , s = 0;
            return "detail"in e && (a = e.detail),
            "wheelDelta"in e && (a = -e.wheelDelta / 120),
            "wheelDeltaY"in e && (a = -e.wheelDeltaY / 120),
            "wheelDeltaX"in e && (t = -e.wheelDeltaX / 120),
            "axis"in e && e.axis === e.HORIZONTAL_AXIS && (t = a,
            a = 0),
            i = 10 * t,
            s = 10 * a,
            "deltaY"in e && (s = e.deltaY),
            "deltaX"in e && (i = e.deltaX),
            e.shiftKey && !i && (i = s,
            s = 0),
            (i || s) && e.deltaMode && (1 === e.deltaMode ? (i *= 40,
            s *= 40) : (i *= 800,
            s *= 800)),
            i && !t && (t = i < 1 ? -1 : 1),
            s && !a && (a = s < 1 ? -1 : 1),
            {
                spinX: t,
                spinY: a,
                pixelX: i,
                pixelY: s
            }
        },
        handleMouseEnter: function() {
            this.mouseEntered = !0
        },
        handleMouseLeave: function() {
            this.mouseEntered = !1
        },
        handle: function(e) {
            var t = e
              , a = this
              , i = a.params.mousewheel;
            a.params.cssMode && t.preventDefault();
            var s = a.$el;
            if ("container" !== a.params.mousewheel.eventsTarget && (s = m(a.params.mousewheel.eventsTarget)),
            !a.mouseEntered && !s[0].contains(t.target) && !i.releaseOnEdges)
                return !0;
            t.originalEvent && (t = t.originalEvent);
            var r = 0
              , n = a.rtlTranslate ? -1 : 1
              , l = U.normalize(t);
            if (i.forceToAxis)
                if (a.isHorizontal()) {
                    if (!(Math.abs(l.pixelX) > Math.abs(l.pixelY)))
                        return !0;
                    r = -l.pixelX * n
                } else {
                    if (!(Math.abs(l.pixelY) > Math.abs(l.pixelX)))
                        return !0;
                    r = -l.pixelY
                }
            else
                r = Math.abs(l.pixelX) > Math.abs(l.pixelY) ? -l.pixelX * n : -l.pixelY;
            if (0 === r)
                return !0;
            i.invert && (r = -r);
            var o = a.getTranslate() + r * i.sensitivity;
            if (o >= a.minTranslate() && (o = a.minTranslate()),
            o <= a.maxTranslate() && (o = a.maxTranslate()),
            (!!a.params.loop || !(o === a.minTranslate() || o === a.maxTranslate())) && a.params.nested && t.stopPropagation(),
            a.params.freeMode) {
                var d = {
                    time: x(),
                    delta: Math.abs(r),
                    direction: Math.sign(r)
                }
                  , p = a.mousewheel.lastEventBeforeSnap
                  , u = p && d.time < p.time + 500 && d.delta <= p.delta && d.direction === p.direction;
                if (!u) {
                    a.mousewheel.lastEventBeforeSnap = void 0,
                    a.params.loop && a.loopFix();
                    var c = a.getTranslate() + r * i.sensitivity
                      , h = a.isBeginning
                      , v = a.isEnd;
                    if (c >= a.minTranslate() && (c = a.minTranslate()),
                    c <= a.maxTranslate() && (c = a.maxTranslate()),
                    a.setTransition(0),
                    a.setTranslate(c),
                    a.updateProgress(),
                    a.updateActiveIndex(),
                    a.updateSlidesClasses(),
                    (!h && a.isBeginning || !v && a.isEnd) && a.updateSlidesClasses(),
                    a.params.freeModeSticky) {
                        clearTimeout(a.mousewheel.timeout),
                        a.mousewheel.timeout = void 0;
                        var f = a.mousewheel.recentWheelEvents;
                        f.length >= 15 && f.shift();
                        var g = f.length ? f[f.length - 1] : void 0
                          , y = f[0];
                        if (f.push(d),
                        g && (d.delta > g.delta || d.direction !== g.direction))
                            f.splice(0);
                        else if (f.length >= 15 && d.time - y.time < 500 && y.delta - d.delta >= 1 && d.delta <= 6) {
                            var w = r > 0 ? .8 : .2;
                            a.mousewheel.lastEventBeforeSnap = d,
                            f.splice(0),
                            a.mousewheel.timeout = E((function() {
                                a.slideToClosest(a.params.speed, !0, void 0, w)
                            }
                            ), 0)
                        }
                        a.mousewheel.timeout || (a.mousewheel.timeout = E((function() {
                            a.mousewheel.lastEventBeforeSnap = d,
                            f.splice(0),
                            a.slideToClosest(a.params.speed, !0, void 0, .5)
                        }
                        ), 500))
                    }
                    if (u || a.emit("scroll", t),
                    a.params.autoplay && a.params.autoplayDisableOnInteraction && a.autoplay.stop(),
                    c === a.minTranslate() || c === a.maxTranslate())
                        return !0
                }
            } else {
                var b = {
                    time: x(),
                    delta: Math.abs(r),
                    direction: Math.sign(r),
                    raw: e
                }
                  , T = a.mousewheel.recentWheelEvents;
                T.length >= 2 && T.shift();
                var C = T.length ? T[T.length - 1] : void 0;
                if (T.push(b),
                C ? (b.direction !== C.direction || b.delta > C.delta || b.time > C.time + 150) && a.mousewheel.animateSlider(b) : a.mousewheel.animateSlider(b),
                a.mousewheel.releaseScroll(b))
                    return !0
            }
            return t.preventDefault ? t.preventDefault() : t.returnValue = !1,
            !1
        },
        animateSlider: function(e) {
            var t = this
              , a = l();
            return !(this.params.mousewheel.thresholdDelta && e.delta < this.params.mousewheel.thresholdDelta) && (!(this.params.mousewheel.thresholdTime && x() - t.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime) && (e.delta >= 6 && x() - t.mousewheel.lastScrollTime < 60 || (e.direction < 0 ? t.isEnd && !t.params.loop || t.animating || (t.slideNext(),
            t.emit("scroll", e.raw)) : t.isBeginning && !t.params.loop || t.animating || (t.slidePrev(),
            t.emit("scroll", e.raw)),
            t.mousewheel.lastScrollTime = (new a.Date).getTime(),
            !1)))
        },
        releaseScroll: function(e) {
            var t = this
              , a = t.params.mousewheel;
            if (e.direction < 0) {
                if (t.isEnd && !t.params.loop && a.releaseOnEdges)
                    return !0
            } else if (t.isBeginning && !t.params.loop && a.releaseOnEdges)
                return !0;
            return !1
        },
        enable: function() {
            var e = this
              , t = U.event();
            if (e.params.cssMode)
                return e.wrapperEl.removeEventListener(t, e.mousewheel.handle),
                !0;
            if (!t)
                return !1;
            if (e.mousewheel.enabled)
                return !1;
            var a = e.$el;
            return "container" !== e.params.mousewheel.eventsTarget && (a = m(e.params.mousewheel.eventsTarget)),
            a.on("mouseenter", e.mousewheel.handleMouseEnter),
            a.on("mouseleave", e.mousewheel.handleMouseLeave),
            a.on(t, e.mousewheel.handle),
            e.mousewheel.enabled = !0,
            !0
        },
        disable: function() {
            var e = this
              , t = U.event();
            if (e.params.cssMode)
                return e.wrapperEl.addEventListener(t, e.mousewheel.handle),
                !0;
            if (!t)
                return !1;
            if (!e.mousewheel.enabled)
                return !1;
            var a = e.$el;
            return "container" !== e.params.mousewheel.eventsTarget && (a = m(e.params.mousewheel.eventsTarget)),
            a.off(t, e.mousewheel.handle),
            e.mousewheel.enabled = !1,
            !0
        }
    }
      , K = {
        update: function() {
            var e = this
              , t = e.params.navigation;
            if (!e.params.loop) {
                var a = e.navigation
                  , i = a.$nextEl
                  , s = a.$prevEl;
                s && s.length > 0 && (e.isBeginning ? s.addClass(t.disabledClass) : s.removeClass(t.disabledClass),
                s[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](t.lockClass)),
                i && i.length > 0 && (e.isEnd ? i.addClass(t.disabledClass) : i.removeClass(t.disabledClass),
                i[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](t.lockClass))
            }
        },
        onPrevClick: function(e) {
            var t = this;
            e.preventDefault(),
            t.isBeginning && !t.params.loop || t.slidePrev()
        },
        onNextClick: function(e) {
            var t = this;
            e.preventDefault(),
            t.isEnd && !t.params.loop || t.slideNext()
        },
        init: function() {
            var e, t, a = this, i = a.params.navigation;
            (i.nextEl || i.prevEl) && (i.nextEl && (e = m(i.nextEl),
            a.params.uniqueNavElements && "string" == typeof i.nextEl && e.length > 1 && 1 === a.$el.find(i.nextEl).length && (e = a.$el.find(i.nextEl))),
            i.prevEl && (t = m(i.prevEl),
            a.params.uniqueNavElements && "string" == typeof i.prevEl && t.length > 1 && 1 === a.$el.find(i.prevEl).length && (t = a.$el.find(i.prevEl))),
            e && e.length > 0 && e.on("click", a.navigation.onNextClick),
            t && t.length > 0 && t.on("click", a.navigation.onPrevClick),
            S(a.navigation, {
                $nextEl: e,
                nextEl: e && e[0],
                $prevEl: t,
                prevEl: t && t[0]
            }))
        },
        destroy: function() {
            var e = this
              , t = e.navigation
              , a = t.$nextEl
              , i = t.$prevEl;
            a && a.length && (a.off("click", e.navigation.onNextClick),
            a.removeClass(e.params.navigation.disabledClass)),
            i && i.length && (i.off("click", e.navigation.onPrevClick),
            i.removeClass(e.params.navigation.disabledClass))
        }
    }
      , Z = {
        update: function() {
            var e = this
              , t = e.rtl
              , a = e.params.pagination;
            if (a.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) {
                var i, s = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length, r = e.pagination.$el, n = e.params.loop ? Math.ceil((s - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length;
                if (e.params.loop ? ((i = Math.ceil((e.activeIndex - e.loopedSlides) / e.params.slidesPerGroup)) > s - 1 - 2 * e.loopedSlides && (i -= s - 2 * e.loopedSlides),
                i > n - 1 && (i -= n),
                i < 0 && "bullets" !== e.params.paginationType && (i = n + i)) : i = void 0 !== e.snapIndex ? e.snapIndex : e.activeIndex || 0,
                "bullets" === a.type && e.pagination.bullets && e.pagination.bullets.length > 0) {
                    var l, o, d, p = e.pagination.bullets;
                    if (a.dynamicBullets && (e.pagination.bulletSize = p.eq(0)[e.isHorizontal() ? "outerWidth" : "outerHeight"](!0),
                    r.css(e.isHorizontal() ? "width" : "height", e.pagination.bulletSize * (a.dynamicMainBullets + 4) + "px"),
                    a.dynamicMainBullets > 1 && void 0 !== e.previousIndex && (e.pagination.dynamicBulletIndex += i - e.previousIndex,
                    e.pagination.dynamicBulletIndex > a.dynamicMainBullets - 1 ? e.pagination.dynamicBulletIndex = a.dynamicMainBullets - 1 : e.pagination.dynamicBulletIndex < 0 && (e.pagination.dynamicBulletIndex = 0)),
                    l = i - e.pagination.dynamicBulletIndex,
                    d = ((o = l + (Math.min(p.length, a.dynamicMainBullets) - 1)) + l) / 2),
                    p.removeClass(a.bulletActiveClass + " " + a.bulletActiveClass + "-next " + a.bulletActiveClass + "-next-next " + a.bulletActiveClass + "-prev " + a.bulletActiveClass + "-prev-prev " + a.bulletActiveClass + "-main"),
                    r.length > 1)
                        p.each((function(e) {
                            var t = m(e)
                              , s = t.index();
                            s === i && t.addClass(a.bulletActiveClass),
                            a.dynamicBullets && (s >= l && s <= o && t.addClass(a.bulletActiveClass + "-main"),
                            s === l && t.prev().addClass(a.bulletActiveClass + "-prev").prev().addClass(a.bulletActiveClass + "-prev-prev"),
                            s === o && t.next().addClass(a.bulletActiveClass + "-next").next().addClass(a.bulletActiveClass + "-next-next"))
                        }
                        ));
                    else {
                        var u = p.eq(i)
                          , c = u.index();
                        if (u.addClass(a.bulletActiveClass),
                        a.dynamicBullets) {
                            for (var h = p.eq(l), v = p.eq(o), f = l; f <= o; f += 1)
                                p.eq(f).addClass(a.bulletActiveClass + "-main");
                            if (e.params.loop)
                                if (c >= p.length - a.dynamicMainBullets) {
                                    for (var g = a.dynamicMainBullets; g >= 0; g -= 1)
                                        p.eq(p.length - g).addClass(a.bulletActiveClass + "-main");
                                    p.eq(p.length - a.dynamicMainBullets - 1).addClass(a.bulletActiveClass + "-prev")
                                } else
                                    h.prev().addClass(a.bulletActiveClass + "-prev").prev().addClass(a.bulletActiveClass + "-prev-prev"),
                                    v.next().addClass(a.bulletActiveClass + "-next").next().addClass(a.bulletActiveClass + "-next-next");
                            else
                                h.prev().addClass(a.bulletActiveClass + "-prev").prev().addClass(a.bulletActiveClass + "-prev-prev"),
                                v.next().addClass(a.bulletActiveClass + "-next").next().addClass(a.bulletActiveClass + "-next-next")
                        }
                    }
                    if (a.dynamicBullets) {
                        var y = Math.min(p.length, a.dynamicMainBullets + 4)
                          , w = (e.pagination.bulletSize * y - e.pagination.bulletSize) / 2 - d * e.pagination.bulletSize
                          , b = t ? "right" : "left";
                        p.css(e.isHorizontal() ? b : "top", w + "px")
                    }
                }
                if ("fraction" === a.type && (r.find("." + a.currentClass).text(a.formatFractionCurrent(i + 1)),
                r.find("." + a.totalClass).text(a.formatFractionTotal(n))),
                "progressbar" === a.type) {
                    var E;
                    E = a.progressbarOpposite ? e.isHorizontal() ? "vertical" : "horizontal" : e.isHorizontal() ? "horizontal" : "vertical";
                    var x = (i + 1) / n
                      , T = 1
                      , C = 1;
                    "horizontal" === E ? T = x : C = x,
                    r.find("." + a.progressbarFillClass).transform("translate3d(0,0,0) scaleX(" + T + ") scaleY(" + C + ")").transition(e.params.speed)
                }
                "custom" === a.type && a.renderCustom ? (r.html(a.renderCustom(e, i + 1, n)),
                e.emit("paginationRender", r[0])) : e.emit("paginationUpdate", r[0]),
                r[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](a.lockClass)
            }
        },
        render: function() {
            var e = this
              , t = e.params.pagination;
            if (t.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) {
                var a = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length
                  , i = e.pagination.$el
                  , s = "";
                if ("bullets" === t.type) {
                    for (var r = e.params.loop ? Math.ceil((a - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length, n = 0; n < r; n += 1)
                        t.renderBullet ? s += t.renderBullet.call(e, n, t.bulletClass) : s += "<" + t.bulletElement + ' class="' + t.bulletClass + '"></' + t.bulletElement + ">";
                    i.html(s),
                    e.pagination.bullets = i.find("." + t.bulletClass.replace(/ /g, "."))
                }
                "fraction" === t.type && (s = t.renderFraction ? t.renderFraction.call(e, t.currentClass, t.totalClass) : '<span class="' + t.currentClass + '"></span> / <span class="' + t.totalClass + '"></span>',
                i.html(s)),
                "progressbar" === t.type && (s = t.renderProgressbar ? t.renderProgressbar.call(e, t.progressbarFillClass) : '<span class="' + t.progressbarFillClass + '"></span>',
                i.html(s)),
                "custom" !== t.type && e.emit("paginationRender", e.pagination.$el[0])
            }
        },
        init: function() {
            var e = this
              , t = e.params.pagination;
            if (t.el) {
                var a = m(t.el);
                0 !== a.length && (e.params.uniqueNavElements && "string" == typeof t.el && a.length > 1 && (a = e.$el.find(t.el)),
                "bullets" === t.type && t.clickable && a.addClass(t.clickableClass),
                a.addClass(t.modifierClass + t.type),
                "bullets" === t.type && t.dynamicBullets && (a.addClass("" + t.modifierClass + t.type + "-dynamic"),
                e.pagination.dynamicBulletIndex = 0,
                t.dynamicMainBullets < 1 && (t.dynamicMainBullets = 1)),
                "progressbar" === t.type && t.progressbarOpposite && a.addClass(t.progressbarOppositeClass),
                t.clickable && a.on("click", "." + t.bulletClass.replace(/ /g, "."), (function(t) {
                    t.preventDefault();
                    var a = m(this).index() * e.params.slidesPerGroup;
                    e.params.loop && (a += e.loopedSlides),
                    e.slideTo(a)
                }
                )),
                S(e.pagination, {
                    $el: a,
                    el: a[0]
                }))
            }
        },
        destroy: function() {
            var e = this
              , t = e.params.pagination;
            if (t.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) {
                var a = e.pagination.$el;
                a.removeClass(t.hiddenClass),
                a.removeClass(t.modifierClass + t.type),
                e.pagination.bullets && e.pagination.bullets.removeClass(t.bulletActiveClass),
                t.clickable && a.off("click", "." + t.bulletClass.replace(/ /g, "."))
            }
        }
    }
      , J = {
        setTranslate: function() {
            var e = this;
            if (e.params.scrollbar.el && e.scrollbar.el) {
                var t = e.scrollbar
                  , a = e.rtlTranslate
                  , i = e.progress
                  , s = t.dragSize
                  , r = t.trackSize
                  , n = t.$dragEl
                  , l = t.$el
                  , o = e.params.scrollbar
                  , d = s
                  , p = (r - s) * i;
                a ? (p = -p) > 0 ? (d = s - p,
                p = 0) : -p + s > r && (d = r + p) : p < 0 ? (d = s + p,
                p = 0) : p + s > r && (d = r - p),
                e.isHorizontal() ? (n.transform("translate3d(" + p + "px, 0, 0)"),
                n[0].style.width = d + "px") : (n.transform("translate3d(0px, " + p + "px, 0)"),
                n[0].style.height = d + "px"),
                o.hide && (clearTimeout(e.scrollbar.timeout),
                l[0].style.opacity = 1,
                e.scrollbar.timeout = setTimeout((function() {
                    l[0].style.opacity = 0,
                    l.transition(400)
                }
                ), 1e3))
            }
        },
        setTransition: function(e) {
            var t = this;
            t.params.scrollbar.el && t.scrollbar.el && t.scrollbar.$dragEl.transition(e)
        },
        updateSize: function() {
            var e = this;
            if (e.params.scrollbar.el && e.scrollbar.el) {
                var t = e.scrollbar
                  , a = t.$dragEl
                  , i = t.$el;
                a[0].style.width = "",
                a[0].style.height = "";
                var s, r = e.isHorizontal() ? i[0].offsetWidth : i[0].offsetHeight, n = e.size / e.virtualSize, l = n * (r / e.size);
                s = "auto" === e.params.scrollbar.dragSize ? r * n : parseInt(e.params.scrollbar.dragSize, 10),
                e.isHorizontal() ? a[0].style.width = s + "px" : a[0].style.height = s + "px",
                i[0].style.display = n >= 1 ? "none" : "",
                e.params.scrollbar.hide && (i[0].style.opacity = 0),
                S(t, {
                    trackSize: r,
                    divider: n,
                    moveDivider: l,
                    dragSize: s
                }),
                t.$el[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](e.params.scrollbar.lockClass)
            }
        },
        getPointerPosition: function(e) {
            return this.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].clientX : e.clientX : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].clientY : e.clientY
        },
        setDragPosition: function(e) {
            var t, a = this, i = a.scrollbar, s = a.rtlTranslate, r = i.$el, n = i.dragSize, l = i.trackSize, o = i.dragStartPos;
            t = (i.getPointerPosition(e) - r.offset()[a.isHorizontal() ? "left" : "top"] - (null !== o ? o : n / 2)) / (l - n),
            t = Math.max(Math.min(t, 1), 0),
            s && (t = 1 - t);
            var d = a.minTranslate() + (a.maxTranslate() - a.minTranslate()) * t;
            a.updateProgress(d),
            a.setTranslate(d),
            a.updateActiveIndex(),
            a.updateSlidesClasses()
        },
        onDragStart: function(e) {
            var t = this
              , a = t.params.scrollbar
              , i = t.scrollbar
              , s = t.$wrapperEl
              , r = i.$el
              , n = i.$dragEl;
            t.scrollbar.isTouched = !0,
            t.scrollbar.dragStartPos = e.target === n[0] || e.target === n ? i.getPointerPosition(e) - e.target.getBoundingClientRect()[t.isHorizontal() ? "left" : "top"] : null,
            e.preventDefault(),
            e.stopPropagation(),
            s.transition(100),
            n.transition(100),
            i.setDragPosition(e),
            clearTimeout(t.scrollbar.dragTimeout),
            r.transition(0),
            a.hide && r.css("opacity", 1),
            t.params.cssMode && t.$wrapperEl.css("scroll-snap-type", "none"),
            t.emit("scrollbarDragStart", e)
        },
        onDragMove: function(e) {
            var t = this
              , a = t.scrollbar
              , i = t.$wrapperEl
              , s = a.$el
              , r = a.$dragEl;
            t.scrollbar.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1,
            a.setDragPosition(e),
            i.transition(0),
            s.transition(0),
            r.transition(0),
            t.emit("scrollbarDragMove", e))
        },
        onDragEnd: function(e) {
            var t = this
              , a = t.params.scrollbar
              , i = t.scrollbar
              , s = t.$wrapperEl
              , r = i.$el;
            t.scrollbar.isTouched && (t.scrollbar.isTouched = !1,
            t.params.cssMode && (t.$wrapperEl.css("scroll-snap-type", ""),
            s.transition("")),
            a.hide && (clearTimeout(t.scrollbar.dragTimeout),
            t.scrollbar.dragTimeout = E((function() {
                r.css("opacity", 0),
                r.transition(400)
            }
            ), 1e3)),
            t.emit("scrollbarDragEnd", e),
            a.snapOnRelease && t.slideToClosest())
        },
        enableDraggable: function() {
            var e = this;
            if (e.params.scrollbar.el) {
                var t = r()
                  , a = e.scrollbar
                  , i = e.touchEventsTouch
                  , s = e.touchEventsDesktop
                  , n = e.params
                  , l = e.support
                  , o = a.$el[0]
                  , d = !(!l.passiveListener || !n.passiveListeners) && {
                    passive: !1,
                    capture: !1
                }
                  , p = !(!l.passiveListener || !n.passiveListeners) && {
                    passive: !0,
                    capture: !1
                };
                l.touch ? (o.addEventListener(i.start, e.scrollbar.onDragStart, d),
                o.addEventListener(i.move, e.scrollbar.onDragMove, d),
                o.addEventListener(i.end, e.scrollbar.onDragEnd, p)) : (o.addEventListener(s.start, e.scrollbar.onDragStart, d),
                t.addEventListener(s.move, e.scrollbar.onDragMove, d),
                t.addEventListener(s.end, e.scrollbar.onDragEnd, p))
            }
        },
        disableDraggable: function() {
            var e = this;
            if (e.params.scrollbar.el) {
                var t = r()
                  , a = e.scrollbar
                  , i = e.touchEventsTouch
                  , s = e.touchEventsDesktop
                  , n = e.params
                  , l = e.support
                  , o = a.$el[0]
                  , d = !(!l.passiveListener || !n.passiveListeners) && {
                    passive: !1,
                    capture: !1
                }
                  , p = !(!l.passiveListener || !n.passiveListeners) && {
                    passive: !0,
                    capture: !1
                };
                l.touch ? (o.removeEventListener(i.start, e.scrollbar.onDragStart, d),
                o.removeEventListener(i.move, e.scrollbar.onDragMove, d),
                o.removeEventListener(i.end, e.scrollbar.onDragEnd, p)) : (o.removeEventListener(s.start, e.scrollbar.onDragStart, d),
                t.removeEventListener(s.move, e.scrollbar.onDragMove, d),
                t.removeEventListener(s.end, e.scrollbar.onDragEnd, p))
            }
        },
        init: function() {
            var e = this;
            if (e.params.scrollbar.el) {
                var t = e.scrollbar
                  , a = e.$el
                  , i = e.params.scrollbar
                  , s = m(i.el);
                e.params.uniqueNavElements && "string" == typeof i.el && s.length > 1 && 1 === a.find(i.el).length && (s = a.find(i.el));
                var r = s.find("." + e.params.scrollbar.dragClass);
                0 === r.length && (r = m('<div class="' + e.params.scrollbar.dragClass + '"></div>'),
                s.append(r)),
                S(t, {
                    $el: s,
                    el: s[0],
                    $dragEl: r,
                    dragEl: r[0]
                }),
                i.draggable && t.enableDraggable()
            }
        },
        destroy: function() {
            this.scrollbar.disableDraggable()
        }
    }
      , Q = {
        setTransform: function(e, t) {
            var a = this.rtl
              , i = m(e)
              , s = a ? -1 : 1
              , r = i.attr("data-swiper-parallax") || "0"
              , n = i.attr("data-swiper-parallax-x")
              , l = i.attr("data-swiper-parallax-y")
              , o = i.attr("data-swiper-parallax-scale")
              , d = i.attr("data-swiper-parallax-opacity");
            if (n || l ? (n = n || "0",
            l = l || "0") : this.isHorizontal() ? (n = r,
            l = "0") : (l = r,
            n = "0"),
            n = n.indexOf("%") >= 0 ? parseInt(n, 10) * t * s + "%" : n * t * s + "px",
            l = l.indexOf("%") >= 0 ? parseInt(l, 10) * t + "%" : l * t + "px",
            null != d) {
                var p = d - (d - 1) * (1 - Math.abs(t));
                i[0].style.opacity = p
            }
            if (null == o)
                i.transform("translate3d(" + n + ", " + l + ", 0px)");
            else {
                var u = o - (o - 1) * (1 - Math.abs(t));
                i.transform("translate3d(" + n + ", " + l + ", 0px) scale(" + u + ")")
            }
        },
        setTranslate: function() {
            var e = this
              , t = e.$el
              , a = e.slides
              , i = e.progress
              , s = e.snapGrid;
            t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function(t) {
                e.parallax.setTransform(t, i)
            }
            )),
            a.each((function(t, a) {
                var r = t.progress;
                e.params.slidesPerGroup > 1 && "auto" !== e.params.slidesPerView && (r += Math.ceil(a / 2) - i * (s.length - 1)),
                r = Math.min(Math.max(r, -1), 1),
                m(t).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function(t) {
                    e.parallax.setTransform(t, r)
                }
                ))
            }
            ))
        },
        setTransition: function(e) {
            void 0 === e && (e = this.params.speed);
            this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function(t) {
                var a = m(t)
                  , i = parseInt(a.attr("data-swiper-parallax-duration"), 10) || e;
                0 === e && (i = 0),
                a.transition(i)
            }
            ))
        }
    }
      , ee = {
        getDistanceBetweenTouches: function(e) {
            if (e.targetTouches.length < 2)
                return 1;
            var t = e.targetTouches[0].pageX
              , a = e.targetTouches[0].pageY
              , i = e.targetTouches[1].pageX
              , s = e.targetTouches[1].pageY;
            return Math.sqrt(Math.pow(i - t, 2) + Math.pow(s - a, 2))
        },
        onGestureStart: function(e) {
            var t = this
              , a = t.support
              , i = t.params.zoom
              , s = t.zoom
              , r = s.gesture;
            if (s.fakeGestureTouched = !1,
            s.fakeGestureMoved = !1,
            !a.gestures) {
                if ("touchstart" !== e.type || "touchstart" === e.type && e.targetTouches.length < 2)
                    return;
                s.fakeGestureTouched = !0,
                r.scaleStart = ee.getDistanceBetweenTouches(e)
            }
            r.$slideEl && r.$slideEl.length || (r.$slideEl = m(e.target).closest("." + t.params.slideClass),
            0 === r.$slideEl.length && (r.$slideEl = t.slides.eq(t.activeIndex)),
            r.$imageEl = r.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),
            r.$imageWrapEl = r.$imageEl.parent("." + i.containerClass),
            r.maxRatio = r.$imageWrapEl.attr("data-swiper-zoom") || i.maxRatio,
            0 !== r.$imageWrapEl.length) ? (r.$imageEl && r.$imageEl.transition(0),
            t.zoom.isScaling = !0) : r.$imageEl = void 0
        },
        onGestureChange: function(e) {
            var t = this
              , a = t.support
              , i = t.params.zoom
              , s = t.zoom
              , r = s.gesture;
            if (!a.gestures) {
                if ("touchmove" !== e.type || "touchmove" === e.type && e.targetTouches.length < 2)
                    return;
                s.fakeGestureMoved = !0,
                r.scaleMove = ee.getDistanceBetweenTouches(e)
            }
            r.$imageEl && 0 !== r.$imageEl.length ? (a.gestures ? s.scale = e.scale * s.currentScale : s.scale = r.scaleMove / r.scaleStart * s.currentScale,
            s.scale > r.maxRatio && (s.scale = r.maxRatio - 1 + Math.pow(s.scale - r.maxRatio + 1, .5)),
            s.scale < i.minRatio && (s.scale = i.minRatio + 1 - Math.pow(i.minRatio - s.scale + 1, .5)),
            r.$imageEl.transform("translate3d(0,0,0) scale(" + s.scale + ")")) : "gesturechange" === e.type && s.onGestureStart(e)
        },
        onGestureEnd: function(e) {
            var t = this
              , a = t.device
              , i = t.support
              , s = t.params.zoom
              , r = t.zoom
              , n = r.gesture;
            if (!i.gestures) {
                if (!r.fakeGestureTouched || !r.fakeGestureMoved)
                    return;
                if ("touchend" !== e.type || "touchend" === e.type && e.changedTouches.length < 2 && !a.android)
                    return;
                r.fakeGestureTouched = !1,
                r.fakeGestureMoved = !1
            }
            n.$imageEl && 0 !== n.$imageEl.length && (r.scale = Math.max(Math.min(r.scale, n.maxRatio), s.minRatio),
            n.$imageEl.transition(t.params.speed).transform("translate3d(0,0,0) scale(" + r.scale + ")"),
            r.currentScale = r.scale,
            r.isScaling = !1,
            1 === r.scale && (n.$slideEl = void 0))
        },
        onTouchStart: function(e) {
            var t = this.device
              , a = this.zoom
              , i = a.gesture
              , s = a.image;
            i.$imageEl && 0 !== i.$imageEl.length && (s.isTouched || (t.android && e.cancelable && e.preventDefault(),
            s.isTouched = !0,
            s.touchesStart.x = "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX,
            s.touchesStart.y = "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY))
        },
        onTouchMove: function(e) {
            var t = this
              , a = t.zoom
              , i = a.gesture
              , s = a.image
              , r = a.velocity;
            if (i.$imageEl && 0 !== i.$imageEl.length && (t.allowClick = !1,
            s.isTouched && i.$slideEl)) {
                s.isMoved || (s.width = i.$imageEl[0].offsetWidth,
                s.height = i.$imageEl[0].offsetHeight,
                s.startX = T(i.$imageWrapEl[0], "x") || 0,
                s.startY = T(i.$imageWrapEl[0], "y") || 0,
                i.slideWidth = i.$slideEl[0].offsetWidth,
                i.slideHeight = i.$slideEl[0].offsetHeight,
                i.$imageWrapEl.transition(0),
                t.rtl && (s.startX = -s.startX,
                s.startY = -s.startY));
                var n = s.width * a.scale
                  , l = s.height * a.scale;
                if (!(n < i.slideWidth && l < i.slideHeight)) {
                    if (s.minX = Math.min(i.slideWidth / 2 - n / 2, 0),
                    s.maxX = -s.minX,
                    s.minY = Math.min(i.slideHeight / 2 - l / 2, 0),
                    s.maxY = -s.minY,
                    s.touchesCurrent.x = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX,
                    s.touchesCurrent.y = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY,
                    !s.isMoved && !a.isScaling) {
                        if (t.isHorizontal() && (Math.floor(s.minX) === Math.floor(s.startX) && s.touchesCurrent.x < s.touchesStart.x || Math.floor(s.maxX) === Math.floor(s.startX) && s.touchesCurrent.x > s.touchesStart.x))
                            return void (s.isTouched = !1);
                        if (!t.isHorizontal() && (Math.floor(s.minY) === Math.floor(s.startY) && s.touchesCurrent.y < s.touchesStart.y || Math.floor(s.maxY) === Math.floor(s.startY) && s.touchesCurrent.y > s.touchesStart.y))
                            return void (s.isTouched = !1)
                    }
                    e.cancelable && e.preventDefault(),
                    e.stopPropagation(),
                    s.isMoved = !0,
                    s.currentX = s.touchesCurrent.x - s.touchesStart.x + s.startX,
                    s.currentY = s.touchesCurrent.y - s.touchesStart.y + s.startY,
                    s.currentX < s.minX && (s.currentX = s.minX + 1 - Math.pow(s.minX - s.currentX + 1, .8)),
                    s.currentX > s.maxX && (s.currentX = s.maxX - 1 + Math.pow(s.currentX - s.maxX + 1, .8)),
                    s.currentY < s.minY && (s.currentY = s.minY + 1 - Math.pow(s.minY - s.currentY + 1, .8)),
                    s.currentY > s.maxY && (s.currentY = s.maxY - 1 + Math.pow(s.currentY - s.maxY + 1, .8)),
                    r.prevPositionX || (r.prevPositionX = s.touchesCurrent.x),
                    r.prevPositionY || (r.prevPositionY = s.touchesCurrent.y),
                    r.prevTime || (r.prevTime = Date.now()),
                    r.x = (s.touchesCurrent.x - r.prevPositionX) / (Date.now() - r.prevTime) / 2,
                    r.y = (s.touchesCurrent.y - r.prevPositionY) / (Date.now() - r.prevTime) / 2,
                    Math.abs(s.touchesCurrent.x - r.prevPositionX) < 2 && (r.x = 0),
                    Math.abs(s.touchesCurrent.y - r.prevPositionY) < 2 && (r.y = 0),
                    r.prevPositionX = s.touchesCurrent.x,
                    r.prevPositionY = s.touchesCurrent.y,
                    r.prevTime = Date.now(),
                    i.$imageWrapEl.transform("translate3d(" + s.currentX + "px, " + s.currentY + "px,0)")
                }
            }
        },
        onTouchEnd: function() {
            var e = this.zoom
              , t = e.gesture
              , a = e.image
              , i = e.velocity;
            if (t.$imageEl && 0 !== t.$imageEl.length) {
                if (!a.isTouched || !a.isMoved)
                    return a.isTouched = !1,
                    void (a.isMoved = !1);
                a.isTouched = !1,
                a.isMoved = !1;
                var s = 300
                  , r = 300
                  , n = i.x * s
                  , l = a.currentX + n
                  , o = i.y * r
                  , d = a.currentY + o;
                0 !== i.x && (s = Math.abs((l - a.currentX) / i.x)),
                0 !== i.y && (r = Math.abs((d - a.currentY) / i.y));
                var p = Math.max(s, r);
                a.currentX = l,
                a.currentY = d;
                var u = a.width * e.scale
                  , c = a.height * e.scale;
                a.minX = Math.min(t.slideWidth / 2 - u / 2, 0),
                a.maxX = -a.minX,
                a.minY = Math.min(t.slideHeight / 2 - c / 2, 0),
                a.maxY = -a.minY,
                a.currentX = Math.max(Math.min(a.currentX, a.maxX), a.minX),
                a.currentY = Math.max(Math.min(a.currentY, a.maxY), a.minY),
                t.$imageWrapEl.transition(p).transform("translate3d(" + a.currentX + "px, " + a.currentY + "px,0)")
            }
        },
        onTransitionEnd: function() {
            var e = this
              , t = e.zoom
              , a = t.gesture;
            a.$slideEl && e.previousIndex !== e.activeIndex && (a.$imageEl && a.$imageEl.transform("translate3d(0,0,0) scale(1)"),
            a.$imageWrapEl && a.$imageWrapEl.transform("translate3d(0,0,0)"),
            t.scale = 1,
            t.currentScale = 1,
            a.$slideEl = void 0,
            a.$imageEl = void 0,
            a.$imageWrapEl = void 0)
        },
        toggle: function(e) {
            var t = this.zoom;
            t.scale && 1 !== t.scale ? t.out() : t.in(e)
        },
        in: function(e) {
            var t, a, i, s, r, n, l, o, d, p, u, c, h, v, f, m, g = this, y = g.zoom, w = g.params.zoom, b = y.gesture, E = y.image;
            (b.$slideEl || (g.params.virtual && g.params.virtual.enabled && g.virtual ? b.$slideEl = g.$wrapperEl.children("." + g.params.slideActiveClass) : b.$slideEl = g.slides.eq(g.activeIndex),
            b.$imageEl = b.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),
            b.$imageWrapEl = b.$imageEl.parent("." + w.containerClass)),
            b.$imageEl && 0 !== b.$imageEl.length) && (b.$slideEl.addClass("" + w.zoomedSlideClass),
            void 0 === E.touchesStart.x && e ? (t = "touchend" === e.type ? e.changedTouches[0].pageX : e.pageX,
            a = "touchend" === e.type ? e.changedTouches[0].pageY : e.pageY) : (t = E.touchesStart.x,
            a = E.touchesStart.y),
            y.scale = b.$imageWrapEl.attr("data-swiper-zoom") || w.maxRatio,
            y.currentScale = b.$imageWrapEl.attr("data-swiper-zoom") || w.maxRatio,
            e ? (f = b.$slideEl[0].offsetWidth,
            m = b.$slideEl[0].offsetHeight,
            i = b.$slideEl.offset().left + f / 2 - t,
            s = b.$slideEl.offset().top + m / 2 - a,
            l = b.$imageEl[0].offsetWidth,
            o = b.$imageEl[0].offsetHeight,
            d = l * y.scale,
            p = o * y.scale,
            h = -(u = Math.min(f / 2 - d / 2, 0)),
            v = -(c = Math.min(m / 2 - p / 2, 0)),
            (r = i * y.scale) < u && (r = u),
            r > h && (r = h),
            (n = s * y.scale) < c && (n = c),
            n > v && (n = v)) : (r = 0,
            n = 0),
            b.$imageWrapEl.transition(300).transform("translate3d(" + r + "px, " + n + "px,0)"),
            b.$imageEl.transition(300).transform("translate3d(0,0,0) scale(" + y.scale + ")"))
        },
        out: function() {
            var e = this
              , t = e.zoom
              , a = e.params.zoom
              , i = t.gesture;
            i.$slideEl || (e.params.virtual && e.params.virtual.enabled && e.virtual ? i.$slideEl = e.$wrapperEl.children("." + e.params.slideActiveClass) : i.$slideEl = e.slides.eq(e.activeIndex),
            i.$imageEl = i.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),
            i.$imageWrapEl = i.$imageEl.parent("." + a.containerClass)),
            i.$imageEl && 0 !== i.$imageEl.length && (t.scale = 1,
            t.currentScale = 1,
            i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),
            i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),
            i.$slideEl.removeClass("" + a.zoomedSlideClass),
            i.$slideEl = void 0)
        },
        toggleGestures: function(e) {
            var t = this
              , a = t.zoom
              , i = a.slideSelector
              , s = a.passiveListener;
            t.$wrapperEl[e]("gesturestart", i, a.onGestureStart, s),
            t.$wrapperEl[e]("gesturechange", i, a.onGestureChange, s),
            t.$wrapperEl[e]("gestureend", i, a.onGestureEnd, s)
        },
        enableGestures: function() {
            this.zoom.gesturesEnabled || (this.zoom.gesturesEnabled = !0,
            this.zoom.toggleGestures("on"))
        },
        disableGestures: function() {
            this.zoom.gesturesEnabled && (this.zoom.gesturesEnabled = !1,
            this.zoom.toggleGestures("off"))
        },
        enable: function() {
            var e = this
              , t = e.support
              , a = e.zoom;
            if (!a.enabled) {
                a.enabled = !0;
                var i = !("touchstart" !== e.touchEvents.start || !t.passiveListener || !e.params.passiveListeners) && {
                    passive: !0,
                    capture: !1
                }
                  , s = !t.passiveListener || {
                    passive: !1,
                    capture: !0
                }
                  , r = "." + e.params.slideClass;
                e.zoom.passiveListener = i,
                e.zoom.slideSelector = r,
                t.gestures ? (e.$wrapperEl.on(e.touchEvents.start, e.zoom.enableGestures, i),
                e.$wrapperEl.on(e.touchEvents.end, e.zoom.disableGestures, i)) : "touchstart" === e.touchEvents.start && (e.$wrapperEl.on(e.touchEvents.start, r, a.onGestureStart, i),
                e.$wrapperEl.on(e.touchEvents.move, r, a.onGestureChange, s),
                e.$wrapperEl.on(e.touchEvents.end, r, a.onGestureEnd, i),
                e.touchEvents.cancel && e.$wrapperEl.on(e.touchEvents.cancel, r, a.onGestureEnd, i)),
                e.$wrapperEl.on(e.touchEvents.move, "." + e.params.zoom.containerClass, a.onTouchMove, s)
            }
        },
        disable: function() {
            var e = this
              , t = e.zoom;
            if (t.enabled) {
                var a = e.support;
                e.zoom.enabled = !1;
                var i = !("touchstart" !== e.touchEvents.start || !a.passiveListener || !e.params.passiveListeners) && {
                    passive: !0,
                    capture: !1
                }
                  , s = !a.passiveListener || {
                    passive: !1,
                    capture: !0
                }
                  , r = "." + e.params.slideClass;
                a.gestures ? (e.$wrapperEl.off(e.touchEvents.start, e.zoom.enableGestures, i),
                e.$wrapperEl.off(e.touchEvents.end, e.zoom.disableGestures, i)) : "touchstart" === e.touchEvents.start && (e.$wrapperEl.off(e.touchEvents.start, r, t.onGestureStart, i),
                e.$wrapperEl.off(e.touchEvents.move, r, t.onGestureChange, s),
                e.$wrapperEl.off(e.touchEvents.end, r, t.onGestureEnd, i),
                e.touchEvents.cancel && e.$wrapperEl.off(e.touchEvents.cancel, r, t.onGestureEnd, i)),
                e.$wrapperEl.off(e.touchEvents.move, "." + e.params.zoom.containerClass, t.onTouchMove, s)
            }
        }
    }
      , te = {
        loadInSlide: function(e, t) {
            void 0 === t && (t = !0);
            var a = this
              , i = a.params.lazy;
            if (void 0 !== e && 0 !== a.slides.length) {
                var s = a.virtual && a.params.virtual.enabled ? a.$wrapperEl.children("." + a.params.slideClass + '[data-swiper-slide-index="' + e + '"]') : a.slides.eq(e)
                  , r = s.find("." + i.elementClass + ":not(." + i.loadedClass + "):not(." + i.loadingClass + ")");
                !s.hasClass(i.elementClass) || s.hasClass(i.loadedClass) || s.hasClass(i.loadingClass) || r.push(s[0]),
                0 !== r.length && r.each((function(e) {
                    var r = m(e);
                    r.addClass(i.loadingClass);
                    var n = r.attr("data-background")
                      , l = r.attr("data-src")
                      , o = r.attr("data-srcset")
                      , d = r.attr("data-sizes")
                      , p = r.parent("picture");
                    a.loadImage(r[0], l || n, o, d, !1, (function() {
                        if (null != a && a && (!a || a.params) && !a.destroyed) {
                            if (n ? (r.css("background-image", 'url("' + n + '")'),
                            r.removeAttr("data-background")) : (o && (r.attr("srcset", o),
                            r.removeAttr("data-srcset")),
                            d && (r.attr("sizes", d),
                            r.removeAttr("data-sizes")),
                            p.length && p.children("source").each((function(e) {
                                var t = m(e);
                                t.attr("data-srcset") && (t.attr("srcset", t.attr("data-srcset")),
                                t.removeAttr("data-srcset"))
                            }
                            )),
                            l && (r.attr("src", l),
                            r.removeAttr("data-src"))),
                            r.addClass(i.loadedClass).removeClass(i.loadingClass),
                            s.find("." + i.preloaderClass).remove(),
                            a.params.loop && t) {
                                var e = s.attr("data-swiper-slide-index");
                                if (s.hasClass(a.params.slideDuplicateClass)) {
                                    var u = a.$wrapperEl.children('[data-swiper-slide-index="' + e + '"]:not(.' + a.params.slideDuplicateClass + ")");
                                    a.lazy.loadInSlide(u.index(), !1)
                                } else {
                                    var c = a.$wrapperEl.children("." + a.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]');
                                    a.lazy.loadInSlide(c.index(), !1)
                                }
                            }
                            a.emit("lazyImageReady", s[0], r[0]),
                            a.params.autoHeight && a.updateAutoHeight()
                        }
                    }
                    )),
                    a.emit("lazyImageLoad", s[0], r[0])
                }
                ))
            }
        },
        load: function() {
            var e = this
              , t = e.$wrapperEl
              , a = e.params
              , i = e.slides
              , s = e.activeIndex
              , r = e.virtual && a.virtual.enabled
              , n = a.lazy
              , l = a.slidesPerView;
            function o(e) {
                if (r) {
                    if (t.children("." + a.slideClass + '[data-swiper-slide-index="' + e + '"]').length)
                        return !0
                } else if (i[e])
                    return !0;
                return !1
            }
            function d(e) {
                return r ? m(e).attr("data-swiper-slide-index") : m(e).index()
            }
            if ("auto" === l && (l = 0),
            e.lazy.initialImageLoaded || (e.lazy.initialImageLoaded = !0),
            e.params.watchSlidesVisibility)
                t.children("." + a.slideVisibleClass).each((function(t) {
                    var a = r ? m(t).attr("data-swiper-slide-index") : m(t).index();
                    e.lazy.loadInSlide(a)
                }
                ));
            else if (l > 1)
                for (var p = s; p < s + l; p += 1)
                    o(p) && e.lazy.loadInSlide(p);
            else
                e.lazy.loadInSlide(s);
            if (n.loadPrevNext)
                if (l > 1 || n.loadPrevNextAmount && n.loadPrevNextAmount > 1) {
                    for (var u = n.loadPrevNextAmount, c = l, h = Math.min(s + c + Math.max(u, c), i.length), v = Math.max(s - Math.max(c, u), 0), f = s + l; f < h; f += 1)
                        o(f) && e.lazy.loadInSlide(f);
                    for (var g = v; g < s; g += 1)
                        o(g) && e.lazy.loadInSlide(g)
                } else {
                    var y = t.children("." + a.slideNextClass);
                    y.length > 0 && e.lazy.loadInSlide(d(y));
                    var w = t.children("." + a.slidePrevClass);
                    w.length > 0 && e.lazy.loadInSlide(d(w))
                }
        },
        checkInViewOnLoad: function() {
            var e = l()
              , t = this;
            if (t && !t.destroyed) {
                var a = t.params.lazy.scrollingElement ? m(t.params.lazy.scrollingElement) : m(e)
                  , i = a[0] === e
                  , s = i ? e.innerWidth : a[0].offsetWidth
                  , r = i ? e.innerHeight : a[0].offsetHeight
                  , n = t.$el.offset()
                  , o = !1;
                t.rtlTranslate && (n.left -= t.$el[0].scrollLeft);
                for (var d = [[n.left, n.top], [n.left + t.width, n.top], [n.left, n.top + t.height], [n.left + t.width, n.top + t.height]], p = 0; p < d.length; p += 1) {
                    var u = d[p];
                    if (u[0] >= 0 && u[0] <= s && u[1] >= 0 && u[1] <= r) {
                        if (0 === u[0] && 0 === u[1])
                            continue;
                        o = !0
                    }
                }
                o ? (t.lazy.load(),
                a.off("scroll", t.lazy.checkInViewOnLoad)) : t.lazy.scrollHandlerAttached || (t.lazy.scrollHandlerAttached = !0,
                a.on("scroll", t.lazy.checkInViewOnLoad))
            }
        }
    }
      , ae = {
        LinearSpline: function(e, t) {
            var a, i, s, r, n, l = function(e, t) {
                for (i = -1,
                a = e.length; a - i > 1; )
                    e[s = a + i >> 1] <= t ? i = s : a = s;
                return a
            };
            return this.x = e,
            this.y = t,
            this.lastIndex = e.length - 1,
            this.interpolate = function(e) {
                return e ? (n = l(this.x, e),
                r = n - 1,
                (e - this.x[r]) * (this.y[n] - this.y[r]) / (this.x[n] - this.x[r]) + this.y[r]) : 0
            }
            ,
            this
        },
        getInterpolateFunction: function(e) {
            var t = this;
            t.controller.spline || (t.controller.spline = t.params.loop ? new ae.LinearSpline(t.slidesGrid,e.slidesGrid) : new ae.LinearSpline(t.snapGrid,e.snapGrid))
        },
        setTranslate: function(e, t) {
            var a, i, s = this, r = s.controller.control, n = s.constructor;
            function l(e) {
                var t = s.rtlTranslate ? -s.translate : s.translate;
                "slide" === s.params.controller.by && (s.controller.getInterpolateFunction(e),
                i = -s.controller.spline.interpolate(-t)),
                i && "container" !== s.params.controller.by || (a = (e.maxTranslate() - e.minTranslate()) / (s.maxTranslate() - s.minTranslate()),
                i = (t - s.minTranslate()) * a + e.minTranslate()),
                s.params.controller.inverse && (i = e.maxTranslate() - i),
                e.updateProgress(i),
                e.setTranslate(i, s),
                e.updateActiveIndex(),
                e.updateSlidesClasses()
            }
            if (Array.isArray(r))
                for (var o = 0; o < r.length; o += 1)
                    r[o] !== t && r[o]instanceof n && l(r[o]);
            else
                r instanceof n && t !== r && l(r)
        },
        setTransition: function(e, t) {
            var a, i = this, s = i.constructor, r = i.controller.control;
            function n(t) {
                t.setTransition(e, i),
                0 !== e && (t.transitionStart(),
                t.params.autoHeight && E((function() {
                    t.updateAutoHeight()
                }
                )),
                t.$wrapperEl.transitionEnd((function() {
                    r && (t.params.loop && "slide" === i.params.controller.by && t.loopFix(),
                    t.transitionEnd())
                }
                )))
            }
            if (Array.isArray(r))
                for (a = 0; a < r.length; a += 1)
                    r[a] !== t && r[a]instanceof s && n(r[a]);
            else
                r instanceof s && t !== r && n(r)
        }
    }
      , ie = {
        getRandomNumber: function(e) {
            void 0 === e && (e = 16);
            return "x".repeat(e).replace(/x/g, (function() {
                return Math.round(16 * Math.random()).toString(16)
            }
            ))
        },
        makeElFocusable: function(e) {
            return e.attr("tabIndex", "0"),
            e
        },
        makeElNotFocusable: function(e) {
            return e.attr("tabIndex", "-1"),
            e
        },
        addElRole: function(e, t) {
            return e.attr("role", t),
            e
        },
        addElRoleDescription: function(e, t) {
            return e.attr("aria-role-description", t),
            e
        },
        addElControls: function(e, t) {
            return e.attr("aria-controls", t),
            e
        },
        addElLabel: function(e, t) {
            return e.attr("aria-label", t),
            e
        },
        addElId: function(e, t) {
            return e.attr("id", t),
            e
        },
        addElLive: function(e, t) {
            return e.attr("aria-live", t),
            e
        },
        disableEl: function(e) {
            return e.attr("aria-disabled", !0),
            e
        },
        enableEl: function(e) {
            return e.attr("aria-disabled", !1),
            e
        },
        onEnterKey: function(e) {
            var t = this
              , a = t.params.a11y;
            if (13 === e.keyCode) {
                var i = m(e.target);
                t.navigation && t.navigation.$nextEl && i.is(t.navigation.$nextEl) && (t.isEnd && !t.params.loop || t.slideNext(),
                t.isEnd ? t.a11y.notify(a.lastSlideMessage) : t.a11y.notify(a.nextSlideMessage)),
                t.navigation && t.navigation.$prevEl && i.is(t.navigation.$prevEl) && (t.isBeginning && !t.params.loop || t.slidePrev(),
                t.isBeginning ? t.a11y.notify(a.firstSlideMessage) : t.a11y.notify(a.prevSlideMessage)),
                t.pagination && i.is("." + t.params.pagination.bulletClass.replace(/ /g, ".")) && i[0].click()
            }
        },
        notify: function(e) {
            var t = this.a11y.liveRegion;
            0 !== t.length && (t.html(""),
            t.html(e))
        },
        updateNavigation: function() {
            var e = this;
            if (!e.params.loop && e.navigation) {
                var t = e.navigation
                  , a = t.$nextEl
                  , i = t.$prevEl;
                i && i.length > 0 && (e.isBeginning ? (e.a11y.disableEl(i),
                e.a11y.makeElNotFocusable(i)) : (e.a11y.enableEl(i),
                e.a11y.makeElFocusable(i))),
                a && a.length > 0 && (e.isEnd ? (e.a11y.disableEl(a),
                e.a11y.makeElNotFocusable(a)) : (e.a11y.enableEl(a),
                e.a11y.makeElFocusable(a)))
            }
        },
        updatePagination: function() {
            var e = this
              , t = e.params.a11y;
            e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.bullets.each((function(a) {
                var i = m(a);
                e.a11y.makeElFocusable(i),
                e.params.pagination.renderBullet || (e.a11y.addElRole(i, "button"),
                e.a11y.addElLabel(i, t.paginationBulletMessage.replace(/\{\{index\}\}/, i.index() + 1)))
            }
            ))
        },
        init: function() {
            var e = this
              , t = e.params.a11y;
            e.$el.append(e.a11y.liveRegion);
            var a = e.$el;
            t.containerRoleDescriptionMessage && e.a11y.addElRoleDescription(a, t.containerRoleDescriptionMessage),
            t.containerMessage && e.a11y.addElLabel(a, t.containerMessage);
            var i, s, r, n = e.$wrapperEl, l = n.attr("id") || "swiper-wrapper-" + e.a11y.getRandomNumber(16);
            e.a11y.addElId(n, l),
            i = e.params.autoplay && e.params.autoplay.enabled ? "off" : "polite",
            e.a11y.addElLive(n, i),
            t.itemRoleDescriptionMessage && e.a11y.addElRoleDescription(m(e.slides), t.itemRoleDescriptionMessage),
            e.a11y.addElRole(m(e.slides), "group"),
            e.slides.each((function(t) {
                var a = m(t);
                e.a11y.addElLabel(a, a.index() + 1 + " / " + e.slides.length)
            }
            )),
            e.navigation && e.navigation.$nextEl && (s = e.navigation.$nextEl),
            e.navigation && e.navigation.$prevEl && (r = e.navigation.$prevEl),
            s && s.length && (e.a11y.makeElFocusable(s),
            "BUTTON" !== s[0].tagName && (e.a11y.addElRole(s, "button"),
            s.on("keydown", e.a11y.onEnterKey)),
            e.a11y.addElLabel(s, t.nextSlideMessage),
            e.a11y.addElControls(s, l)),
            r && r.length && (e.a11y.makeElFocusable(r),
            "BUTTON" !== r[0].tagName && (e.a11y.addElRole(r, "button"),
            r.on("keydown", e.a11y.onEnterKey)),
            e.a11y.addElLabel(r, t.prevSlideMessage),
            e.a11y.addElControls(r, l)),
            e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.$el.on("keydown", "." + e.params.pagination.bulletClass.replace(/ /g, "."), e.a11y.onEnterKey)
        },
        destroy: function() {
            var e, t, a = this;
            a.a11y.liveRegion && a.a11y.liveRegion.length > 0 && a.a11y.liveRegion.remove(),
            a.navigation && a.navigation.$nextEl && (e = a.navigation.$nextEl),
            a.navigation && a.navigation.$prevEl && (t = a.navigation.$prevEl),
            e && e.off("keydown", a.a11y.onEnterKey),
            t && t.off("keydown", a.a11y.onEnterKey),
            a.pagination && a.params.pagination.clickable && a.pagination.bullets && a.pagination.bullets.length && a.pagination.$el.off("keydown", "." + a.params.pagination.bulletClass.replace(/ /g, "."), a.a11y.onEnterKey)
        }
    }
      , se = {
        init: function() {
            var e = this
              , t = l();
            if (e.params.history) {
                if (!t.history || !t.history.pushState)
                    return e.params.history.enabled = !1,
                    void (e.params.hashNavigation.enabled = !0);
                var a = e.history;
                a.initialized = !0,
                a.paths = se.getPathValues(e.params.url),
                (a.paths.key || a.paths.value) && (a.scrollToSlide(0, a.paths.value, e.params.runCallbacksOnInit),
                e.params.history.replaceState || t.addEventListener("popstate", e.history.setHistoryPopState))
            }
        },
        destroy: function() {
            var e = l();
            this.params.history.replaceState || e.removeEventListener("popstate", this.history.setHistoryPopState)
        },
        setHistoryPopState: function() {
            var e = this;
            e.history.paths = se.getPathValues(e.params.url),
            e.history.scrollToSlide(e.params.speed, e.history.paths.value, !1)
        },
        getPathValues: function(e) {
            var t = l()
              , a = (e ? new URL(e) : t.location).pathname.slice(1).split("/").filter((function(e) {
                return "" !== e
            }
            ))
              , i = a.length;
            return {
                key: a[i - 2],
                value: a[i - 1]
            }
        },
        setHistory: function(e, t) {
            var a = this
              , i = l();
            if (a.history.initialized && a.params.history.enabled) {
                var s;
                s = a.params.url ? new URL(a.params.url) : i.location;
                var r = a.slides.eq(t)
                  , n = se.slugify(r.attr("data-history"));
                s.pathname.includes(e) || (n = e + "/" + n);
                var o = i.history.state;
                o && o.value === n || (a.params.history.replaceState ? i.history.replaceState({
                    value: n
                }, null, n) : i.history.pushState({
                    value: n
                }, null, n))
            }
        },
        slugify: function(e) {
            return e.toString().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-").replace(/^-+/, "").replace(/-+$/, "")
        },
        scrollToSlide: function(e, t, a) {
            var i = this;
            if (t)
                for (var s = 0, r = i.slides.length; s < r; s += 1) {
                    var n = i.slides.eq(s);
                    if (se.slugify(n.attr("data-history")) === t && !n.hasClass(i.params.slideDuplicateClass)) {
                        var l = n.index();
                        i.slideTo(l, e, a)
                    }
                }
            else
                i.slideTo(0, e, a)
        }
    }
      , re = {
        onHashCange: function() {
            var e = this
              , t = r();
            e.emit("hashChange");
            var a = t.location.hash.replace("#", "");
            if (a !== e.slides.eq(e.activeIndex).attr("data-hash")) {
                var i = e.$wrapperEl.children("." + e.params.slideClass + '[data-hash="' + a + '"]').index();
                if (void 0 === i)
                    return;
                e.slideTo(i)
            }
        },
        setHash: function() {
            var e = this
              , t = l()
              , a = r();
            if (e.hashNavigation.initialized && e.params.hashNavigation.enabled)
                if (e.params.hashNavigation.replaceState && t.history && t.history.replaceState)
                    t.history.replaceState(null, null, "#" + e.slides.eq(e.activeIndex).attr("data-hash") || ""),
                    e.emit("hashSet");
                else {
                    var i = e.slides.eq(e.activeIndex)
                      , s = i.attr("data-hash") || i.attr("data-history");
                    a.location.hash = s || "",
                    e.emit("hashSet")
                }
        },
        init: function() {
            var e = this
              , t = r()
              , a = l();
            if (!(!e.params.hashNavigation.enabled || e.params.history && e.params.history.enabled)) {
                e.hashNavigation.initialized = !0;
                var i = t.location.hash.replace("#", "");
                if (i)
                    for (var s = 0, n = e.slides.length; s < n; s += 1) {
                        var o = e.slides.eq(s);
                        if ((o.attr("data-hash") || o.attr("data-history")) === i && !o.hasClass(e.params.slideDuplicateClass)) {
                            var d = o.index();
                            e.slideTo(d, 0, e.params.runCallbacksOnInit, !0)
                        }
                    }
                e.params.hashNavigation.watchState && m(a).on("hashchange", e.hashNavigation.onHashCange)
            }
        },
        destroy: function() {
            var e = l();
            this.params.hashNavigation.watchState && m(e).off("hashchange", this.hashNavigation.onHashCange)
        }
    }
      , ne = {
        run: function() {
            var e = this
              , t = e.slides.eq(e.activeIndex)
              , a = e.params.autoplay.delay;
            t.attr("data-swiper-autoplay") && (a = t.attr("data-swiper-autoplay") || e.params.autoplay.delay),
            clearTimeout(e.autoplay.timeout),
            e.autoplay.timeout = E((function() {
                var t;
                e.params.autoplay.reverseDirection ? e.params.loop ? (e.loopFix(),
                t = e.slidePrev(e.params.speed, !0, !0),
                e.emit("autoplay")) : e.isBeginning ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (t = e.slideTo(e.slides.length - 1, e.params.speed, !0, !0),
                e.emit("autoplay")) : (t = e.slidePrev(e.params.speed, !0, !0),
                e.emit("autoplay")) : e.params.loop ? (e.loopFix(),
                t = e.slideNext(e.params.speed, !0, !0),
                e.emit("autoplay")) : e.isEnd ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (t = e.slideTo(0, e.params.speed, !0, !0),
                e.emit("autoplay")) : (t = e.slideNext(e.params.speed, !0, !0),
                e.emit("autoplay")),
                (e.params.cssMode && e.autoplay.running || !1 === t) && e.autoplay.run()
            }
            ), a)
        },
        start: function() {
            var e = this;
            return void 0 === e.autoplay.timeout && (!e.autoplay.running && (e.autoplay.running = !0,
            e.emit("autoplayStart"),
            e.autoplay.run(),
            !0))
        },
        stop: function() {
            var e = this;
            return !!e.autoplay.running && (void 0 !== e.autoplay.timeout && (e.autoplay.timeout && (clearTimeout(e.autoplay.timeout),
            e.autoplay.timeout = void 0),
            e.autoplay.running = !1,
            e.emit("autoplayStop"),
            !0))
        },
        pause: function(e) {
            var t = this;
            t.autoplay.running && (t.autoplay.paused || (t.autoplay.timeout && clearTimeout(t.autoplay.timeout),
            t.autoplay.paused = !0,
            0 !== e && t.params.autoplay.waitForTransition ? (t.$wrapperEl[0].addEventListener("transitionend", t.autoplay.onTransitionEnd),
            t.$wrapperEl[0].addEventListener("webkitTransitionEnd", t.autoplay.onTransitionEnd)) : (t.autoplay.paused = !1,
            t.autoplay.run())))
        },
        onVisibilityChange: function() {
            var e = this
              , t = r();
            "hidden" === t.visibilityState && e.autoplay.running && e.autoplay.pause(),
            "visible" === t.visibilityState && e.autoplay.paused && (e.autoplay.run(),
            e.autoplay.paused = !1)
        },
        onTransitionEnd: function(e) {
            var t = this;
            t && !t.destroyed && t.$wrapperEl && e.target === t.$wrapperEl[0] && (t.$wrapperEl[0].removeEventListener("transitionend", t.autoplay.onTransitionEnd),
            t.$wrapperEl[0].removeEventListener("webkitTransitionEnd", t.autoplay.onTransitionEnd),
            t.autoplay.paused = !1,
            t.autoplay.running ? t.autoplay.run() : t.autoplay.stop())
        }
    }
      , le = {
        setTranslate: function() {
            for (var e = this, t = e.slides, a = 0; a < t.length; a += 1) {
                var i = e.slides.eq(a)
                  , s = -i[0].swiperSlideOffset;
                e.params.virtualTranslate || (s -= e.translate);
                var r = 0;
                e.isHorizontal() || (r = s,
                s = 0);
                var n = e.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(i[0].progress), 0) : 1 + Math.min(Math.max(i[0].progress, -1), 0);
                i.css({
                    opacity: n
                }).transform("translate3d(" + s + "px, " + r + "px, 0px)")
            }
        },
        setTransition: function(e) {
            var t = this
              , a = t.slides
              , i = t.$wrapperEl;
            if (a.transition(e),
            t.params.virtualTranslate && 0 !== e) {
                var s = !1;
                a.transitionEnd((function() {
                    if (!s && t && !t.destroyed) {
                        s = !0,
                        t.animating = !1;
                        for (var e = ["webkitTransitionEnd", "transitionend"], a = 0; a < e.length; a += 1)
                            i.trigger(e[a])
                    }
                }
                ))
            }
        }
    }
      , oe = {
        setTranslate: function() {
            var e, t = this, a = t.$el, i = t.$wrapperEl, s = t.slides, r = t.width, n = t.height, l = t.rtlTranslate, o = t.size, d = t.browser, p = t.params.cubeEffect, u = t.isHorizontal(), c = t.virtual && t.params.virtual.enabled, h = 0;
            p.shadow && (u ? (0 === (e = i.find(".swiper-cube-shadow")).length && (e = m('<div class="swiper-cube-shadow"></div>'),
            i.append(e)),
            e.css({
                height: r + "px"
            })) : 0 === (e = a.find(".swiper-cube-shadow")).length && (e = m('<div class="swiper-cube-shadow"></div>'),
            a.append(e)));
            for (var v = 0; v < s.length; v += 1) {
                var f = s.eq(v)
                  , g = v;
                c && (g = parseInt(f.attr("data-swiper-slide-index"), 10));
                var y = 90 * g
                  , w = Math.floor(y / 360);
                l && (y = -y,
                w = Math.floor(-y / 360));
                var b = Math.max(Math.min(f[0].progress, 1), -1)
                  , E = 0
                  , x = 0
                  , T = 0;
                g % 4 == 0 ? (E = 4 * -w * o,
                T = 0) : (g - 1) % 4 == 0 ? (E = 0,
                T = 4 * -w * o) : (g - 2) % 4 == 0 ? (E = o + 4 * w * o,
                T = o) : (g - 3) % 4 == 0 && (E = -o,
                T = 3 * o + 4 * o * w),
                l && (E = -E),
                u || (x = E,
                E = 0);
                var C = "rotateX(" + (u ? 0 : -y) + "deg) rotateY(" + (u ? y : 0) + "deg) translate3d(" + E + "px, " + x + "px, " + T + "px)";
                if (b <= 1 && b > -1 && (h = 90 * g + 90 * b,
                l && (h = 90 * -g - 90 * b)),
                f.transform(C),
                p.slideShadows) {
                    var S = u ? f.find(".swiper-slide-shadow-left") : f.find(".swiper-slide-shadow-top")
                      , M = u ? f.find(".swiper-slide-shadow-right") : f.find(".swiper-slide-shadow-bottom");
                    0 === S.length && (S = m('<div class="swiper-slide-shadow-' + (u ? "left" : "top") + '"></div>'),
                    f.append(S)),
                    0 === M.length && (M = m('<div class="swiper-slide-shadow-' + (u ? "right" : "bottom") + '"></div>'),
                    f.append(M)),
                    S.length && (S[0].style.opacity = Math.max(-b, 0)),
                    M.length && (M[0].style.opacity = Math.max(b, 0))
                }
            }
            if (i.css({
                "-webkit-transform-origin": "50% 50% -" + o / 2 + "px",
                "-moz-transform-origin": "50% 50% -" + o / 2 + "px",
                "-ms-transform-origin": "50% 50% -" + o / 2 + "px",
                "transform-origin": "50% 50% -" + o / 2 + "px"
            }),
            p.shadow)
                if (u)
                    e.transform("translate3d(0px, " + (r / 2 + p.shadowOffset) + "px, " + -r / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + p.shadowScale + ")");
                else {
                    var z = Math.abs(h) - 90 * Math.floor(Math.abs(h) / 90)
                      , P = 1.5 - (Math.sin(2 * z * Math.PI / 360) / 2 + Math.cos(2 * z * Math.PI / 360) / 2)
                      , k = p.shadowScale
                      , L = p.shadowScale / P
                      , $ = p.shadowOffset;
                    e.transform("scale3d(" + k + ", 1, " + L + ") translate3d(0px, " + (n / 2 + $) + "px, " + -n / 2 / L + "px) rotateX(-90deg)")
                }
            var I = d.isSafari || d.isWebView ? -o / 2 : 0;
            i.transform("translate3d(0px,0," + I + "px) rotateX(" + (t.isHorizontal() ? 0 : h) + "deg) rotateY(" + (t.isHorizontal() ? -h : 0) + "deg)")
        },
        setTransition: function(e) {
            var t = this
              , a = t.$el;
            t.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),
            t.params.cubeEffect.shadow && !t.isHorizontal() && a.find(".swiper-cube-shadow").transition(e)
        }
    }
      , de = {
        setTranslate: function() {
            for (var e = this, t = e.slides, a = e.rtlTranslate, i = 0; i < t.length; i += 1) {
                var s = t.eq(i)
                  , r = s[0].progress;
                e.params.flipEffect.limitRotation && (r = Math.max(Math.min(s[0].progress, 1), -1));
                var n = -180 * r
                  , l = 0
                  , o = -s[0].swiperSlideOffset
                  , d = 0;
                if (e.isHorizontal() ? a && (n = -n) : (d = o,
                o = 0,
                l = -n,
                n = 0),
                s[0].style.zIndex = -Math.abs(Math.round(r)) + t.length,
                e.params.flipEffect.slideShadows) {
                    var p = e.isHorizontal() ? s.find(".swiper-slide-shadow-left") : s.find(".swiper-slide-shadow-top")
                      , u = e.isHorizontal() ? s.find(".swiper-slide-shadow-right") : s.find(".swiper-slide-shadow-bottom");
                    0 === p.length && (p = m('<div class="swiper-slide-shadow-' + (e.isHorizontal() ? "left" : "top") + '"></div>'),
                    s.append(p)),
                    0 === u.length && (u = m('<div class="swiper-slide-shadow-' + (e.isHorizontal() ? "right" : "bottom") + '"></div>'),
                    s.append(u)),
                    p.length && (p[0].style.opacity = Math.max(-r, 0)),
                    u.length && (u[0].style.opacity = Math.max(r, 0))
                }
                s.transform("translate3d(" + o + "px, " + d + "px, 0px) rotateX(" + l + "deg) rotateY(" + n + "deg)")
            }
        },
        setTransition: function(e) {
            var t = this
              , a = t.slides
              , i = t.activeIndex
              , s = t.$wrapperEl;
            if (a.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),
            t.params.virtualTranslate && 0 !== e) {
                var r = !1;
                a.eq(i).transitionEnd((function() {
                    if (!r && t && !t.destroyed) {
                        r = !0,
                        t.animating = !1;
                        for (var e = ["webkitTransitionEnd", "transitionend"], a = 0; a < e.length; a += 1)
                            s.trigger(e[a])
                    }
                }
                ))
            }
        }
    }
      , pe = {
        setTranslate: function() {
            for (var e = this, t = e.width, a = e.height, i = e.slides, s = e.slidesSizesGrid, r = e.params.coverflowEffect, n = e.isHorizontal(), l = e.translate, o = n ? t / 2 - l : a / 2 - l, d = n ? r.rotate : -r.rotate, p = r.depth, u = 0, c = i.length; u < c; u += 1) {
                var h = i.eq(u)
                  , v = s[u]
                  , f = (o - h[0].swiperSlideOffset - v / 2) / v * r.modifier
                  , g = n ? d * f : 0
                  , y = n ? 0 : d * f
                  , w = -p * Math.abs(f)
                  , b = r.stretch;
                "string" == typeof b && -1 !== b.indexOf("%") && (b = parseFloat(r.stretch) / 100 * v);
                var E = n ? 0 : b * f
                  , x = n ? b * f : 0
                  , T = 1 - (1 - r.scale) * Math.abs(f);
                Math.abs(x) < .001 && (x = 0),
                Math.abs(E) < .001 && (E = 0),
                Math.abs(w) < .001 && (w = 0),
                Math.abs(g) < .001 && (g = 0),
                Math.abs(y) < .001 && (y = 0),
                Math.abs(T) < .001 && (T = 0);
                var C = "translate3d(" + x + "px," + E + "px," + w + "px)  rotateX(" + y + "deg) rotateY(" + g + "deg) scale(" + T + ")";
                if (h.transform(C),
                h[0].style.zIndex = 1 - Math.abs(Math.round(f)),
                r.slideShadows) {
                    var S = n ? h.find(".swiper-slide-shadow-left") : h.find(".swiper-slide-shadow-top")
                      , M = n ? h.find(".swiper-slide-shadow-right") : h.find(".swiper-slide-shadow-bottom");
                    0 === S.length && (S = m('<div class="swiper-slide-shadow-' + (n ? "left" : "top") + '"></div>'),
                    h.append(S)),
                    0 === M.length && (M = m('<div class="swiper-slide-shadow-' + (n ? "right" : "bottom") + '"></div>'),
                    h.append(M)),
                    S.length && (S[0].style.opacity = f > 0 ? f : 0),
                    M.length && (M[0].style.opacity = -f > 0 ? -f : 0)
                }
            }
        },
        setTransition: function(e) {
            this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)
        }
    }
      , ue = {
        init: function() {
            var e = this
              , t = e.params.thumbs;
            if (e.thumbs.initialized)
                return !1;
            e.thumbs.initialized = !0;
            var a = e.constructor;
            return t.swiper instanceof a ? (e.thumbs.swiper = t.swiper,
            S(e.thumbs.swiper.originalParams, {
                watchSlidesProgress: !0,
                slideToClickedSlide: !1
            }),
            S(e.thumbs.swiper.params, {
                watchSlidesProgress: !0,
                slideToClickedSlide: !1
            })) : C(t.swiper) && (e.thumbs.swiper = new a(S({}, t.swiper, {
                watchSlidesVisibility: !0,
                watchSlidesProgress: !0,
                slideToClickedSlide: !1
            })),
            e.thumbs.swiperCreated = !0),
            e.thumbs.swiper.$el.addClass(e.params.thumbs.thumbsContainerClass),
            e.thumbs.swiper.on("tap", e.thumbs.onThumbClick),
            !0
        },
        onThumbClick: function() {
            var e = this
              , t = e.thumbs.swiper;
            if (t) {
                var a = t.clickedIndex
                  , i = t.clickedSlide;
                if (!(i && m(i).hasClass(e.params.thumbs.slideThumbActiveClass) || null == a)) {
                    var s;
                    if (s = t.params.loop ? parseInt(m(t.clickedSlide).attr("data-swiper-slide-index"), 10) : a,
                    e.params.loop) {
                        var r = e.activeIndex;
                        e.slides.eq(r).hasClass(e.params.slideDuplicateClass) && (e.loopFix(),
                        e._clientLeft = e.$wrapperEl[0].clientLeft,
                        r = e.activeIndex);
                        var n = e.slides.eq(r).prevAll('[data-swiper-slide-index="' + s + '"]').eq(0).index()
                          , l = e.slides.eq(r).nextAll('[data-swiper-slide-index="' + s + '"]').eq(0).index();
                        s = void 0 === n ? l : void 0 === l ? n : l - r < r - n ? l : n
                    }
                    e.slideTo(s)
                }
            }
        },
        update: function(e) {
            var t = this
              , a = t.thumbs.swiper;
            if (a) {
                var i = "auto" === a.params.slidesPerView ? a.slidesPerViewDynamic() : a.params.slidesPerView
                  , s = t.params.thumbs.autoScrollOffset
                  , r = s && !a.params.loop;
                if (t.realIndex !== a.realIndex || r) {
                    var n, l, o = a.activeIndex;
                    if (a.params.loop) {
                        a.slides.eq(o).hasClass(a.params.slideDuplicateClass) && (a.loopFix(),
                        a._clientLeft = a.$wrapperEl[0].clientLeft,
                        o = a.activeIndex);
                        var d = a.slides.eq(o).prevAll('[data-swiper-slide-index="' + t.realIndex + '"]').eq(0).index()
                          , p = a.slides.eq(o).nextAll('[data-swiper-slide-index="' + t.realIndex + '"]').eq(0).index();
                        n = void 0 === d ? p : void 0 === p ? d : p - o == o - d ? o : p - o < o - d ? p : d,
                        l = t.activeIndex > t.previousIndex ? "next" : "prev"
                    } else
                        l = (n = t.realIndex) > t.previousIndex ? "next" : "prev";
                    r && (n += "next" === l ? s : -1 * s),
                    a.visibleSlidesIndexes && a.visibleSlidesIndexes.indexOf(n) < 0 && (a.params.centeredSlides ? n = n > o ? n - Math.floor(i / 2) + 1 : n + Math.floor(i / 2) - 1 : n > o && (n = n - i + 1),
                    a.slideTo(n, e ? 0 : void 0))
                }
                var u = 1
                  , c = t.params.thumbs.slideThumbActiveClass;
                if (t.params.slidesPerView > 1 && !t.params.centeredSlides && (u = t.params.slidesPerView),
                t.params.thumbs.multipleActiveThumbs || (u = 1),
                u = Math.floor(u),
                a.slides.removeClass(c),
                a.params.loop || a.params.virtual && a.params.virtual.enabled)
                    for (var h = 0; h < u; h += 1)
                        a.$wrapperEl.children('[data-swiper-slide-index="' + (t.realIndex + h) + '"]').addClass(c);
                else
                    for (var v = 0; v < u; v += 1)
                        a.slides.eq(t.realIndex + v).addClass(c)
            }
        }
    }
      , ce = [q, _, {
        name: "mousewheel",
        params: {
            mousewheel: {
                enabled: !1,
                releaseOnEdges: !1,
                invert: !1,
                forceToAxis: !1,
                sensitivity: 1,
                eventsTarget: "container",
                thresholdDelta: null,
                thresholdTime: null
            }
        },
        create: function() {
            M(this, {
                mousewheel: {
                    enabled: !1,
                    lastScrollTime: x(),
                    lastEventBeforeSnap: void 0,
                    recentWheelEvents: [],
                    enable: U.enable,
                    disable: U.disable,
                    handle: U.handle,
                    handleMouseEnter: U.handleMouseEnter,
                    handleMouseLeave: U.handleMouseLeave,
                    animateSlider: U.animateSlider,
                    releaseScroll: U.releaseScroll
                }
            })
        },
        on: {
            init: function(e) {
                !e.params.mousewheel.enabled && e.params.cssMode && e.mousewheel.disable(),
                e.params.mousewheel.enabled && e.mousewheel.enable()
            },
            destroy: function(e) {
                e.params.cssMode && e.mousewheel.enable(),
                e.mousewheel.enabled && e.mousewheel.disable()
            }
        }
    }, {
        name: "navigation",
        params: {
            navigation: {
                nextEl: null,
                prevEl: null,
                hideOnClick: !1,
                disabledClass: "swiper-button-disabled",
                hiddenClass: "swiper-button-hidden",
                lockClass: "swiper-button-lock"
            }
        },
        create: function() {
            M(this, {
                navigation: t({}, K)
            })
        },
        on: {
            init: function(e) {
                e.navigation.init(),
                e.navigation.update()
            },
            toEdge: function(e) {
                e.navigation.update()
            },
            fromEdge: function(e) {
                e.navigation.update()
            },
            destroy: function(e) {
                e.navigation.destroy()
            },
            click: function(e, t) {
                var a, i = e.navigation, s = i.$nextEl, r = i.$prevEl;
                !e.params.navigation.hideOnClick || m(t.target).is(r) || m(t.target).is(s) || (s ? a = s.hasClass(e.params.navigation.hiddenClass) : r && (a = r.hasClass(e.params.navigation.hiddenClass)),
                !0 === a ? e.emit("navigationShow") : e.emit("navigationHide"),
                s && s.toggleClass(e.params.navigation.hiddenClass),
                r && r.toggleClass(e.params.navigation.hiddenClass))
            }
        }
    }, {
        name: "pagination",
        params: {
            pagination: {
                el: null,
                bulletElement: "span",
                clickable: !1,
                hideOnClick: !1,
                renderBullet: null,
                renderProgressbar: null,
                renderFraction: null,
                renderCustom: null,
                progressbarOpposite: !1,
                type: "bullets",
                dynamicBullets: !1,
                dynamicMainBullets: 1,
                formatFractionCurrent: function(e) {
                    return e
                },
                formatFractionTotal: function(e) {
                    return e
                },
                bulletClass: "swiper-pagination-bullet",
                bulletActiveClass: "swiper-pagination-bullet-active",
                modifierClass: "swiper-pagination-",
                currentClass: "swiper-pagination-current",
                totalClass: "swiper-pagination-total",
                hiddenClass: "swiper-pagination-hidden",
                progressbarFillClass: "swiper-pagination-progressbar-fill",
                progressbarOppositeClass: "swiper-pagination-progressbar-opposite",
                clickableClass: "swiper-pagination-clickable",
                lockClass: "swiper-pagination-lock"
            }
        },
        create: function() {
            M(this, {
                pagination: t({
                    dynamicBulletIndex: 0
                }, Z)
            })
        },
        on: {
            init: function(e) {
                e.pagination.init(),
                e.pagination.render(),
                e.pagination.update()
            },
            activeIndexChange: function(e) {
                (e.params.loop || void 0 === e.snapIndex) && e.pagination.update()
            },
            snapIndexChange: function(e) {
                e.params.loop || e.pagination.update()
            },
            slidesLengthChange: function(e) {
                e.params.loop && (e.pagination.render(),
                e.pagination.update())
            },
            snapGridLengthChange: function(e) {
                e.params.loop || (e.pagination.render(),
                e.pagination.update())
            },
            destroy: function(e) {
                e.pagination.destroy()
            },
            click: function(e, t) {
                e.params.pagination.el && e.params.pagination.hideOnClick && e.pagination.$el.length > 0 && !m(t.target).hasClass(e.params.pagination.bulletClass) && (!0 === e.pagination.$el.hasClass(e.params.pagination.hiddenClass) ? e.emit("paginationShow") : e.emit("paginationHide"),
                e.pagination.$el.toggleClass(e.params.pagination.hiddenClass))
            }
        }
    }, {
        name: "scrollbar",
        params: {
            scrollbar: {
                el: null,
                dragSize: "auto",
                hide: !1,
                draggable: !1,
                snapOnRelease: !0,
                lockClass: "swiper-scrollbar-lock",
                dragClass: "swiper-scrollbar-drag"
            }
        },
        create: function() {
            M(this, {
                scrollbar: t({
                    isTouched: !1,
                    timeout: null,
                    dragTimeout: null
                }, J)
            })
        },
        on: {
            init: function(e) {
                e.scrollbar.init(),
                e.scrollbar.updateSize(),
                e.scrollbar.setTranslate()
            },
            update: function(e) {
                e.scrollbar.updateSize()
            },
            resize: function(e) {
                e.scrollbar.updateSize()
            },
            observerUpdate: function(e) {
                e.scrollbar.updateSize()
            },
            setTranslate: function(e) {
                e.scrollbar.setTranslate()
            },
            setTransition: function(e, t) {
                e.scrollbar.setTransition(t)
            },
            destroy: function(e) {
                e.scrollbar.destroy()
            }
        }
    }, {
        name: "parallax",
        params: {
            parallax: {
                enabled: !1
            }
        },
        create: function() {
            M(this, {
                parallax: t({}, Q)
            })
        },
        on: {
            beforeInit: function(e) {
                e.params.parallax.enabled && (e.params.watchSlidesProgress = !0,
                e.originalParams.watchSlidesProgress = !0)
            },
            init: function(e) {
                e.params.parallax.enabled && e.parallax.setTranslate()
            },
            setTranslate: function(e) {
                e.params.parallax.enabled && e.parallax.setTranslate()
            },
            setTransition: function(e, t) {
                e.params.parallax.enabled && e.parallax.setTransition(t)
            }
        }
    }, {
        name: "zoom",
        params: {
            zoom: {
                enabled: !1,
                maxRatio: 3,
                minRatio: 1,
                toggle: !0,
                containerClass: "swiper-zoom-container",
                zoomedSlideClass: "swiper-slide-zoomed"
            }
        },
        create: function() {
            var e = this;
            M(e, {
                zoom: t({
                    enabled: !1,
                    scale: 1,
                    currentScale: 1,
                    isScaling: !1,
                    gesture: {
                        $slideEl: void 0,
                        slideWidth: void 0,
                        slideHeight: void 0,
                        $imageEl: void 0,
                        $imageWrapEl: void 0,
                        maxRatio: 3
                    },
                    image: {
                        isTouched: void 0,
                        isMoved: void 0,
                        currentX: void 0,
                        currentY: void 0,
                        minX: void 0,
                        minY: void 0,
                        maxX: void 0,
                        maxY: void 0,
                        width: void 0,
                        height: void 0,
                        startX: void 0,
                        startY: void 0,
                        touchesStart: {},
                        touchesCurrent: {}
                    },
                    velocity: {
                        x: void 0,
                        y: void 0,
                        prevPositionX: void 0,
                        prevPositionY: void 0,
                        prevTime: void 0
                    }
                }, ee)
            });
            var a = 1;
            Object.defineProperty(e.zoom, "scale", {
                get: function() {
                    return a
                },
                set: function(t) {
                    if (a !== t) {
                        var i = e.zoom.gesture.$imageEl ? e.zoom.gesture.$imageEl[0] : void 0
                          , s = e.zoom.gesture.$slideEl ? e.zoom.gesture.$slideEl[0] : void 0;
                        e.emit("zoomChange", t, i, s)
                    }
                    a = t
                }
            })
        },
        on: {
            init: function(e) {
                e.params.zoom.enabled && e.zoom.enable()
            },
            destroy: function(e) {
                e.zoom.disable()
            },
            touchStart: function(e, t) {
                e.zoom.enabled && e.zoom.onTouchStart(t)
            },
            touchEnd: function(e, t) {
                e.zoom.enabled && e.zoom.onTouchEnd(t)
            },
            doubleTap: function(e, t) {
                e.params.zoom.enabled && e.zoom.enabled && e.params.zoom.toggle && e.zoom.toggle(t)
            },
            transitionEnd: function(e) {
                e.zoom.enabled && e.params.zoom.enabled && e.zoom.onTransitionEnd()
            },
            slideChange: function(e) {
                e.zoom.enabled && e.params.zoom.enabled && e.params.cssMode && e.zoom.onTransitionEnd()
            }
        }
    }, {
        name: "lazy",
        params: {
            lazy: {
                checkInView: !1,
                enabled: !1,
                loadPrevNext: !1,
                loadPrevNextAmount: 1,
                loadOnTransitionStart: !1,
                scrollingElement: "",
                elementClass: "swiper-lazy",
                loadingClass: "swiper-lazy-loading",
                loadedClass: "swiper-lazy-loaded",
                preloaderClass: "swiper-lazy-preloader"
            }
        },
        create: function() {
            M(this, {
                lazy: t({
                    initialImageLoaded: !1
                }, te)
            })
        },
        on: {
            beforeInit: function(e) {
                e.params.lazy.enabled && e.params.preloadImages && (e.params.preloadImages = !1)
            },
            init: function(e) {
                e.params.lazy.enabled && !e.params.loop && 0 === e.params.initialSlide && (e.params.lazy.checkInView ? e.lazy.checkInViewOnLoad() : e.lazy.load())
            },
            scroll: function(e) {
                e.params.freeMode && !e.params.freeModeSticky && e.lazy.load()
            },
            resize: function(e) {
                e.params.lazy.enabled && e.lazy.load()
            },
            scrollbarDragMove: function(e) {
                e.params.lazy.enabled && e.lazy.load()
            },
            transitionStart: function(e) {
                e.params.lazy.enabled && (e.params.lazy.loadOnTransitionStart || !e.params.lazy.loadOnTransitionStart && !e.lazy.initialImageLoaded) && e.lazy.load()
            },
            transitionEnd: function(e) {
                e.params.lazy.enabled && !e.params.lazy.loadOnTransitionStart && e.lazy.load()
            },
            slideChange: function(e) {
                e.params.lazy.enabled && e.params.cssMode && e.lazy.load()
            }
        }
    }, {
        name: "controller",
        params: {
            controller: {
                control: void 0,
                inverse: !1,
                by: "slide"
            }
        },
        create: function() {
            M(this, {
                controller: t({
                    control: this.params.controller.control
                }, ae)
            })
        },
        on: {
            update: function(e) {
                e.controller.control && e.controller.spline && (e.controller.spline = void 0,
                delete e.controller.spline)
            },
            resize: function(e) {
                e.controller.control && e.controller.spline && (e.controller.spline = void 0,
                delete e.controller.spline)
            },
            observerUpdate: function(e) {
                e.controller.control && e.controller.spline && (e.controller.spline = void 0,
                delete e.controller.spline)
            },
            setTranslate: function(e, t, a) {
                e.controller.control && e.controller.setTranslate(t, a)
            },
            setTransition: function(e, t, a) {
                e.controller.control && e.controller.setTransition(t, a)
            }
        }
    }, {
        name: "a11y",
        params: {
            a11y: {
                enabled: !0,
                notificationClass: "swiper-notification",
                prevSlideMessage: "Previous slide",
                nextSlideMessage: "Next slide",
                firstSlideMessage: "This is the first slide",
                lastSlideMessage: "This is the last slide",
                paginationBulletMessage: "Go to slide {{index}}",
                containerMessage: null,
                containerRoleDescriptionMessage: null,
                itemRoleDescriptionMessage: null
            }
        },
        create: function() {
            M(this, {
                a11y: t({}, ie, {
                    liveRegion: m('<span class="' + this.params.a11y.notificationClass + '" aria-live="assertive" aria-atomic="true"></span>')
                })
            })
        },
        on: {
            afterInit: function(e) {
                e.params.a11y.enabled && (e.a11y.init(),
                e.a11y.updateNavigation())
            },
            toEdge: function(e) {
                e.params.a11y.enabled && e.a11y.updateNavigation()
            },
            fromEdge: function(e) {
                e.params.a11y.enabled && e.a11y.updateNavigation()
            },
            paginationUpdate: function(e) {
                e.params.a11y.enabled && e.a11y.updatePagination()
            },
            destroy: function(e) {
                e.params.a11y.enabled && e.a11y.destroy()
            }
        }
    }, {
        name: "history",
        params: {
            history: {
                enabled: !1,
                replaceState: !1,
                key: "slides"
            }
        },
        create: function() {
            M(this, {
                history: t({}, se)
            })
        },
        on: {
            init: function(e) {
                e.params.history.enabled && e.history.init()
            },
            destroy: function(e) {
                e.params.history.enabled && e.history.destroy()
            },
            transitionEnd: function(e) {
                e.history.initialized && e.history.setHistory(e.params.history.key, e.activeIndex)
            },
            slideChange: function(e) {
                e.history.initialized && e.params.cssMode && e.history.setHistory(e.params.history.key, e.activeIndex)
            }
        }
    }, {
        name: "hash-navigation",
        params: {
            hashNavigation: {
                enabled: !1,
                replaceState: !1,
                watchState: !1
            }
        },
        create: function() {
            M(this, {
                hashNavigation: t({
                    initialized: !1
                }, re)
            })
        },
        on: {
            init: function(e) {
                e.params.hashNavigation.enabled && e.hashNavigation.init()
            },
            destroy: function(e) {
                e.params.hashNavigation.enabled && e.hashNavigation.destroy()
            },
            transitionEnd: function(e) {
                e.hashNavigation.initialized && e.hashNavigation.setHash()
            },
            slideChange: function(e) {
                e.hashNavigation.initialized && e.params.cssMode && e.hashNavigation.setHash()
            }
        }
    }, {
        name: "autoplay",
        params: {
            autoplay: {
                enabled: !1,
                delay: 3e3,
                waitForTransition: !0,
                disableOnInteraction: !0,
                stopOnLastSlide: !1,
                reverseDirection: !1
            }
        },
        create: function() {
            M(this, {
                autoplay: t({}, ne, {
                    running: !1,
                    paused: !1
                })
            })
        },
        on: {
            init: function(e) {
                e.params.autoplay.enabled && (e.autoplay.start(),
                r().addEventListener("visibilitychange", e.autoplay.onVisibilityChange))
            },
            beforeTransitionStart: function(e, t, a) {
                e.autoplay.running && (a || !e.params.autoplay.disableOnInteraction ? e.autoplay.pause(t) : e.autoplay.stop())
            },
            sliderFirstMove: function(e) {
                e.autoplay.running && (e.params.autoplay.disableOnInteraction ? e.autoplay.stop() : e.autoplay.pause())
            },
            touchEnd: function(e) {
                e.params.cssMode && e.autoplay.paused && !e.params.autoplay.disableOnInteraction && e.autoplay.run()
            },
            destroy: function(e) {
                e.autoplay.running && e.autoplay.stop(),
                r().removeEventListener("visibilitychange", e.autoplay.onVisibilityChange)
            }
        }
    }, {
        name: "effect-fade",
        params: {
            fadeEffect: {
                crossFade: !1
            }
        },
        create: function() {
            M(this, {
                fadeEffect: t({}, le)
            })
        },
        on: {
            beforeInit: function(e) {
                if ("fade" === e.params.effect) {
                    e.classNames.push(e.params.containerModifierClass + "fade");
                    var t = {
                        slidesPerView: 1,
                        slidesPerColumn: 1,
                        slidesPerGroup: 1,
                        watchSlidesProgress: !0,
                        spaceBetween: 0,
                        virtualTranslate: !0
                    };
                    S(e.params, t),
                    S(e.originalParams, t)
                }
            },
            setTranslate: function(e) {
                "fade" === e.params.effect && e.fadeEffect.setTranslate()
            },
            setTransition: function(e, t) {
                "fade" === e.params.effect && e.fadeEffect.setTransition(t)
            }
        }
    }, {
        name: "effect-cube",
        params: {
            cubeEffect: {
                slideShadows: !0,
                shadow: !0,
                shadowOffset: 20,
                shadowScale: .94
            }
        },
        create: function() {
            M(this, {
                cubeEffect: t({}, oe)
            })
        },
        on: {
            beforeInit: function(e) {
                if ("cube" === e.params.effect) {
                    e.classNames.push(e.params.containerModifierClass + "cube"),
                    e.classNames.push(e.params.containerModifierClass + "3d");
                    var t = {
                        slidesPerView: 1,
                        slidesPerColumn: 1,
                        slidesPerGroup: 1,
                        watchSlidesProgress: !0,
                        resistanceRatio: 0,
                        spaceBetween: 0,
                        centeredSlides: !1,
                        virtualTranslate: !0
                    };
                    S(e.params, t),
                    S(e.originalParams, t)
                }
            },
            setTranslate: function(e) {
                "cube" === e.params.effect && e.cubeEffect.setTranslate()
            },
            setTransition: function(e, t) {
                "cube" === e.params.effect && e.cubeEffect.setTransition(t)
            }
        }
    }, {
        name: "effect-flip",
        params: {
            flipEffect: {
                slideShadows: !0,
                limitRotation: !0
            }
        },
        create: function() {
            M(this, {
                flipEffect: t({}, de)
            })
        },
        on: {
            beforeInit: function(e) {
                if ("flip" === e.params.effect) {
                    e.classNames.push(e.params.containerModifierClass + "flip"),
                    e.classNames.push(e.params.containerModifierClass + "3d");
                    var t = {
                        slidesPerView: 1,
                        slidesPerColumn: 1,
                        slidesPerGroup: 1,
                        watchSlidesProgress: !0,
                        spaceBetween: 0,
                        virtualTranslate: !0
                    };
                    S(e.params, t),
                    S(e.originalParams, t)
                }
            },
            setTranslate: function(e) {
                "flip" === e.params.effect && e.flipEffect.setTranslate()
            },
            setTransition: function(e, t) {
                "flip" === e.params.effect && e.flipEffect.setTransition(t)
            }
        }
    }, {
        name: "effect-coverflow",
        params: {
            coverflowEffect: {
                rotate: 50,
                stretch: 0,
                depth: 100,
                scale: 1,
                modifier: 1,
                slideShadows: !0
            }
        },
        create: function() {
            M(this, {
                coverflowEffect: t({}, pe)
            })
        },
        on: {
            beforeInit: function(e) {
                "coverflow" === e.params.effect && (e.classNames.push(e.params.containerModifierClass + "coverflow"),
                e.classNames.push(e.params.containerModifierClass + "3d"),
                e.params.watchSlidesProgress = !0,
                e.originalParams.watchSlidesProgress = !0)
            },
            setTranslate: function(e) {
                "coverflow" === e.params.effect && e.coverflowEffect.setTranslate()
            },
            setTransition: function(e, t) {
                "coverflow" === e.params.effect && e.coverflowEffect.setTransition(t)
            }
        }
    }, {
        name: "thumbs",
        params: {
            thumbs: {
                swiper: null,
                multipleActiveThumbs: !0,
                autoScrollOffset: 0,
                slideThumbActiveClass: "swiper-slide-thumb-active",
                thumbsContainerClass: "swiper-container-thumbs"
            }
        },
        create: function() {
            M(this, {
                thumbs: t({
                    swiper: null,
                    initialized: !1
                }, ue)
            })
        },
        on: {
            beforeInit: function(e) {
                var t = e.params.thumbs;
                t && t.swiper && (e.thumbs.init(),
                e.thumbs.update(!0))
            },
            slideChange: function(e) {
                e.thumbs.swiper && e.thumbs.update()
            },
            update: function(e) {
                e.thumbs.swiper && e.thumbs.update()
            },
            resize: function(e) {
                e.thumbs.swiper && e.thumbs.update()
            },
            observerUpdate: function(e) {
                e.thumbs.swiper && e.thumbs.update()
            },
            setTransition: function(e, t) {
                var a = e.thumbs.swiper;
                a && a.setTransition(t)
            },
            beforeDestroy: function(e) {
                var t = e.thumbs.swiper;
                t && e.thumbs.swiperCreated && t && t.destroy()
            }
        }
    }];
    return R.use(ce),
    R
}
));

/*! clipboard.js v2.0.10 https://clipboardjs.com/ Licensed MIT © Zeno Rocha */
!function(t, e) {
    "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.ClipboardJS = e() : t.ClipboardJS = e()
}(this, function() {
    return n = {
        686: function(t, e, n) {
            "use strict";
            n.d(e, {
                default: function() {
                    return o
                }
            });
            var e = n(279)
              , i = n.n(e)
              , e = n(370)
              , u = n.n(e)
              , e = n(817)
              , c = n.n(e);
            function a(t) {
                try {
                    return document.execCommand(t)
                } catch (t) {
                    return
                }
            }
            var f = function(t) {
                t = c()(t);
                return a("cut"),
                t
            };
            var l = function(t) {
                var e, n, o, r = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {
                    container: document.body
                }, i = "";
                return "string" == typeof t ? (e = t,
                n = "rtl" === document.documentElement.getAttribute("dir"),
                (o = document.createElement("textarea")).style.fontSize = "12pt",
                o.style.border = "0",
                o.style.padding = "0",
                o.style.margin = "0",
                o.style.position = "absolute",
                o.style[n ? "right" : "left"] = "-9999px",
                n = window.pageYOffset || document.documentElement.scrollTop,
                o.style.top = "".concat(n, "px"),
                o.setAttribute("readonly", ""),
                o.value = e,
                o = o,
                r.container.appendChild(o),
                i = c()(o),
                a("copy"),
                o.remove()) : (i = c()(t),
                a("copy")),
                i
            };
            function r(t) {
                return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                    return typeof t
                }
                : function(t) {
                    return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
                }
                )(t)
            }
            var s = function() {
                var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}
                  , e = t.action
                  , n = void 0 === e ? "copy" : e
                  , o = t.container
                  , e = t.target
                  , t = t.text;
                if ("copy" !== n && "cut" !== n)
                    throw new Error('Invalid "action" value, use either "copy" or "cut"');
                if (void 0 !== e) {
                    if (!e || "object" !== r(e) || 1 !== e.nodeType)
                        throw new Error('Invalid "target" value, use a valid Element');
                    if ("copy" === n && e.hasAttribute("disabled"))
                        throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
                    if ("cut" === n && (e.hasAttribute("readonly") || e.hasAttribute("disabled")))
                        throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')
                }
                return t ? l(t, {
                    container: o
                }) : e ? "cut" === n ? f(e) : l(e, {
                    container: o
                }) : void 0
            };
            function p(t) {
                return (p = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                    return typeof t
                }
                : function(t) {
                    return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
                }
                )(t)
            }
            function d(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var o = e[n];
                    o.enumerable = o.enumerable || !1,
                    o.configurable = !0,
                    "value"in o && (o.writable = !0),
                    Object.defineProperty(t, o.key, o)
                }
            }
            function y(t, e) {
                return (y = Object.setPrototypeOf || function(t, e) {
                    return t.__proto__ = e,
                    t
                }
                )(t, e)
            }
            function h(n) {
                var o = function() {
                    if ("undefined" == typeof Reflect || !Reflect.construct)
                        return !1;
                    if (Reflect.construct.sham)
                        return !1;
                    if ("function" == typeof Proxy)
                        return !0;
                    try {
                        return Date.prototype.toString.call(Reflect.construct(Date, [], function() {})),
                        !0
                    } catch (t) {
                        return !1
                    }
                }();
                return function() {
                    var t, e = m(n);
                    return t = o ? (t = m(this).constructor,
                    Reflect.construct(e, arguments, t)) : e.apply(this, arguments),
                    e = this,
                    !(t = t) || "object" !== p(t) && "function" != typeof t ? function(t) {
                        if (void 0 !== t)
                            return t;
                        throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                    }(e) : t
                }
            }
            function m(t) {
                return (m = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
                    return t.__proto__ || Object.getPrototypeOf(t)
                }
                )(t)
            }
            function v(t, e) {
                t = "data-clipboard-".concat(t);
                if (e.hasAttribute(t))
                    return e.getAttribute(t)
            }
            var o = function() {
                !function(t, e) {
                    if ("function" != typeof e && null !== e)
                        throw new TypeError("Super expression must either be null or a function");
                    t.prototype = Object.create(e && e.prototype, {
                        constructor: {
                            value: t,
                            writable: !0,
                            configurable: !0
                        }
                    }),
                    e && y(t, e)
                }(r, i());
                var t, e, n, o = h(r);
                function r(t, e) {
                    var n;
                    return function(t) {
                        if (!(t instanceof r))
                            throw new TypeError("Cannot call a class as a function")
                    }(this),
                    (n = o.call(this)).resolveOptions(e),
                    n.listenClick(t),
                    n
                }
                return t = r,
                n = [{
                    key: "copy",
                    value: function(t) {
                        var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {
                            container: document.body
                        };
                        return l(t, e)
                    }
                }, {
                    key: "cut",
                    value: function(t) {
                        return f(t)
                    }
                }, {
                    key: "isSupported",
                    value: function() {
                        var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ["copy", "cut"]
                          , t = "string" == typeof t ? [t] : t
                          , e = !!document.queryCommandSupported;
                        return t.forEach(function(t) {
                            e = e && !!document.queryCommandSupported(t)
                        }),
                        e
                    }
                }],
                (e = [{
                    key: "resolveOptions",
                    value: function() {
                        var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
                        this.action = "function" == typeof t.action ? t.action : this.defaultAction,
                        this.target = "function" == typeof t.target ? t.target : this.defaultTarget,
                        this.text = "function" == typeof t.text ? t.text : this.defaultText,
                        this.container = "object" === p(t.container) ? t.container : document.body
                    }
                }, {
                    key: "listenClick",
                    value: function(t) {
                        var e = this;
                        this.listener = u()(t, "click", function(t) {
                            return e.onClick(t)
                        })
                    }
                }, {
                    key: "onClick",
                    value: function(t) {
                        var e = t.delegateTarget || t.currentTarget
                          , n = this.action(e) || "copy"
                          , t = s({
                            action: n,
                            container: this.container,
                            target: this.target(e),
                            text: this.text(e)
                        });
                        this.emit(t ? "success" : "error", {
                            action: n,
                            text: t,
                            trigger: e,
                            clearSelection: function() {
                                e && e.focus(),
                                document.activeElement.blur(),
                                window.getSelection().removeAllRanges()
                            }
                        })
                    }
                }, {
                    key: "defaultAction",
                    value: function(t) {
                        return v("action", t)
                    }
                }, {
                    key: "defaultTarget",
                    value: function(t) {
                        t = v("target", t);
                        if (t)
                            return document.querySelector(t)
                    }
                }, {
                    key: "defaultText",
                    value: function(t) {
                        return v("text", t)
                    }
                }, {
                    key: "destroy",
                    value: function() {
                        this.listener.destroy()
                    }
                }]) && d(t.prototype, e),
                n && d(t, n),
                r
            }()
        },
        828: function(t) {
            var e;
            "undefined" == typeof Element || Element.prototype.matches || ((e = Element.prototype).matches = e.matchesSelector || e.mozMatchesSelector || e.msMatchesSelector || e.oMatchesSelector || e.webkitMatchesSelector),
            t.exports = function(t, e) {
                for (; t && 9 !== t.nodeType; ) {
                    if ("function" == typeof t.matches && t.matches(e))
                        return t;
                    t = t.parentNode
                }
            }
        },
        438: function(t, e, n) {
            var u = n(828);
            function i(t, e, n, o, r) {
                var i = function(e, n, t, o) {
                    return function(t) {
                        t.delegateTarget = u(t.target, n),
                        t.delegateTarget && o.call(e, t)
                    }
                }
                .apply(this, arguments);
                return t.addEventListener(n, i, r),
                {
                    destroy: function() {
                        t.removeEventListener(n, i, r)
                    }
                }
            }
            t.exports = function(t, e, n, o, r) {
                return "function" == typeof t.addEventListener ? i.apply(null, arguments) : "function" == typeof n ? i.bind(null, document).apply(null, arguments) : ("string" == typeof t && (t = document.querySelectorAll(t)),
                Array.prototype.map.call(t, function(t) {
                    return i(t, e, n, o, r)
                }))
            }
        },
        879: function(t, n) {
            n.node = function(t) {
                return void 0 !== t && t instanceof HTMLElement && 1 === t.nodeType
            }
            ,
            n.nodeList = function(t) {
                var e = Object.prototype.toString.call(t);
                return void 0 !== t && ("[object NodeList]" === e || "[object HTMLCollection]" === e) && "length"in t && (0 === t.length || n.node(t[0]))
            }
            ,
            n.string = function(t) {
                return "string" == typeof t || t instanceof String
            }
            ,
            n.fn = function(t) {
                return "[object Function]" === Object.prototype.toString.call(t)
            }
        },
        370: function(t, e, n) {
            var f = n(879)
              , l = n(438);
            t.exports = function(t, e, n) {
                if (!t && !e && !n)
                    throw new Error("Missing required arguments");
                if (!f.string(e))
                    throw new TypeError("Second argument must be a String");
                if (!f.fn(n))
                    throw new TypeError("Third argument must be a Function");
                if (f.node(t))
                    return c = e,
                    a = n,
                    (u = t).addEventListener(c, a),
                    {
                        destroy: function() {
                            u.removeEventListener(c, a)
                        }
                    };
                if (f.nodeList(t))
                    return o = t,
                    r = e,
                    i = n,
                    Array.prototype.forEach.call(o, function(t) {
                        t.addEventListener(r, i)
                    }),
                    {
                        destroy: function() {
                            Array.prototype.forEach.call(o, function(t) {
                                t.removeEventListener(r, i)
                            })
                        }
                    };
                if (f.string(t))
                    return t = t,
                    e = e,
                    n = n,
                    l(document.body, t, e, n);
                throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");
                var o, r, i, u, c, a
            }
        },
        817: function(t) {
            t.exports = function(t) {
                var e, n = "SELECT" === t.nodeName ? (t.focus(),
                t.value) : "INPUT" === t.nodeName || "TEXTAREA" === t.nodeName ? ((e = t.hasAttribute("readonly")) || t.setAttribute("readonly", ""),
                t.select(),
                t.setSelectionRange(0, t.value.length),
                e || t.removeAttribute("readonly"),
                t.value) : (t.hasAttribute("contenteditable") && t.focus(),
                n = window.getSelection(),
                (e = document.createRange()).selectNodeContents(t),
                n.removeAllRanges(),
                n.addRange(e),
                n.toString());
                return n
            }
        },
        279: function(t) {
            function e() {}
            e.prototype = {
                on: function(t, e, n) {
                    var o = this.e || (this.e = {});
                    return (o[t] || (o[t] = [])).push({
                        fn: e,
                        ctx: n
                    }),
                    this
                },
                once: function(t, e, n) {
                    var o = this;
                    function r() {
                        o.off(t, r),
                        e.apply(n, arguments)
                    }
                    return r._ = e,
                    this.on(t, r, n)
                },
                emit: function(t) {
                    for (var e = [].slice.call(arguments, 1), n = ((this.e || (this.e = {}))[t] || []).slice(), o = 0, r = n.length; o < r; o++)
                        n[o].fn.apply(n[o].ctx, e);
                    return this
                },
                off: function(t, e) {
                    var n = this.e || (this.e = {})
                      , o = n[t]
                      , r = [];
                    if (o && e)
                        for (var i = 0, u = o.length; i < u; i++)
                            o[i].fn !== e && o[i].fn._ !== e && r.push(o[i]);
                    return r.length ? n[t] = r : delete n[t],
                    this
                }
            },
            t.exports = e,
            t.exports.TinyEmitter = e
        }
    },
    r = {},
    o.n = function(t) {
        var e = t && t.__esModule ? function() {
            return t.default
        }
        : function() {
            return t
        }
        ;
        return o.d(e, {
            a: e
        }),
        e
    }
    ,
    o.d = function(t, e) {
        for (var n in e)
            o.o(e, n) && !o.o(t, n) && Object.defineProperty(t, n, {
                enumerable: !0,
                get: e[n]
            })
    }
    ,
    o.o = function(t, e) {
        return Object.prototype.hasOwnProperty.call(t, e)
    }
    ,
    o(686).default;
    function o(t) {
        if (r[t])
            return r[t].exports;
        var e = r[t] = {
            exports: {}
        };
        return n[t](e, e.exports, o),
        e.exports
    }
    var n, r
});

/*! easy-toggle-state v1.16.0 | (c) 2020 Matthieu Bué <https://twikito.com> | MIT License | https://twikito.github.io/easy-toggle-state/ */
!function() {
    "use strict";
    const t = document.documentElement.getAttribute("data-easy-toggle-state-custom-prefix") || "toggle"
      , e = (e,r=(()=>t)())=>["data", r, e].filter(Boolean).join("-")
      , r = e("arrows")
      , i = e("class")
      , n = e("class-on-target")
      , s = e("class-on-trigger")
      , a = "is-active"
      , o = e("escape")
      , u = e("event")
      , c = e("group")
      , l = e("is-active")
      , g = e("modal")
      , d = e("outside")
      , h = e("outside-event")
      , A = e("radio-group")
      , b = e("target")
      , f = e("target-all")
      , $ = e("target-next")
      , v = e("target-parent")
      , m = e("target-previous")
      , E = e("target-self")
      , w = e("state")
      , p = e("trigger-off")
      , y = new Event("toggleAfter")
      , k = new Event("toggleBefore")
      , L = (t,e)=>{
        const r = t ? `[${t}]` : "";
        if (e)
            return [...e.querySelectorAll(r)];
        const a = [`[${i}]${r}`, `[${s}]${r}`, `[${n}][${b}]${r}`, `[${n}][${f}]${r}`, `[${n}][${$}]${r}`, `[${n}][${m}]${r}`, `[${n}][${v}]${r}`, `[${n}][${E}]${r}`].join().trim();
        return [...document.querySelectorAll(a)]
    }
      , x = (t,e)=>t.dispatchEvent(e)
      , O = t=>"easyToggleState_" + t
      , S = (t,e={
        "aria-checked": t[O("isActive")],
        "aria-expanded": t[O("isActive")],
        "aria-hidden": !t[O("isActive")],
        "aria-pressed": t[O("isActive")],
        "aria-selected": t[O("isActive")]
    })=>Object.keys(e).forEach(r=>t.hasAttribute(r) && t.setAttribute(r, e[r]))
      , D = (t,e,r=!1)=>`This trigger has the class name '${t}' filled in both attributes '${i}' and '${e}'. As a result, this class will be toggled ${r && "on its target(s)"} twice at the same time.`
      , z = (t,e)=>(t.getAttribute(e) || "").split(" ").filter(Boolean)
      , I = t=>{
        const e = t.hasAttribute(c) ? c : A;
        return L(`${e}="${t.getAttribute(e)}"`).filter(t=>t[O("isActive")])
    }
      , T = (t,e)=>{
        t || console.warn(`You should fill the attribute '${e}' with a selector`)
    }
      , q = (t,e)=>{
        if (0 === e.length)
            return console.warn(`There's no match with the selector '${t}' for this trigger`),
            [];
        const r = t.match(/#\w+/gi);
        return r && r.forEach(t=>{
            const r = [...e].filter(e=>e.id === t.slice(1));
            r.length > 1 && console.warn(`There's ${r.length} matches with the selector '${t}' for this trigger`)
        }
        ),
        [...e]
    }
      , K = (t,e)=>e.forEach(e=>{
        t.classList.toggle(e)
    }
    )
      , j = {}
      , B = t=>document.addEventListener(t.getAttribute(h) || t.getAttribute(u) || "click", Y, !1)
      , Y = t=>{
        const e = t.target
          , r = t.type;
        let a = !1;
        L(d).filter(t=>t.getAttribute(h) === r || t.getAttribute(u) === r && !t.hasAttribute(h) || "click" === r && !t.hasAttribute(u) && !t.hasAttribute(h)).forEach(t=>{
            const r = e.closest(`[${w}="true"]`);
            r && r[O("trigger")] === t && (a = !0),
            a || t === e || t.contains(e) || !t[O("isActive")] || (t.hasAttribute(c) || t.hasAttribute(A) ? R : M)(t)
        }
        ),
        a || document.removeEventListener(r, Y, !1);
        const o = e.closest(`[${i}][${d}],[${s}][${d}],[${n}][${d}]`);
        o && o[O("isActive")] && B(e)
    }
      , C = t=>M(t.currentTarget[O("target")])
      , H = (t,e,r)=>(t=>{
        if (t.hasAttribute(b) || t.hasAttribute(f)) {
            const e = t.getAttribute(b) || t.getAttribute(f);
            return T(e, t.hasAttribute(b) ? b : f),
            q(e, document.querySelectorAll(e))
        }
        if (t.hasAttribute(v)) {
            const e = t.getAttribute(v);
            return T(e, v),
            q(e, t.parentElement.querySelectorAll(e))
        }
        if (t.hasAttribute(E)) {
            const e = t.getAttribute(E);
            return T(e, E),
            q(e, t.querySelectorAll(e))
        }
        return t.hasAttribute(m) ? q("previous", [t.previousElementSibling].filter(Boolean)) : t.hasAttribute($) ? q("next", [t.nextElementSibling].filter(Boolean)) : []
    }
    )(t).forEach(i=>{
        x(i, k),
        i[O("isActive")] = !i[O("isActive")],
        S(i),
        r ? i.classList.add(...e) : K(i, e),
        t.hasAttribute(d) && (i.setAttribute(w, t[O("isActive")]),
        i[O("trigger")] = t),
        t.hasAttribute(g) && (i[O("isActive")] ? (j[i] = (t=>e=>{
            const r = [...t.querySelectorAll("a[href], area[href], input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]")];
            if (!r.length || "Tab" !== e.key)
                return;
            const i = e.target
              , n = r[0]
              , s = r[r.length - 1];
            return -1 === r.indexOf(i) ? (e.preventDefault(),
            n.focus()) : e.shiftKey && i === n ? (e.preventDefault(),
            s.focus()) : e.shiftKey || i !== s ? void 0 : (e.preventDefault(),
            n.focus())
        }
        )(i),
        document.addEventListener("keydown", j[i], !1)) : (document.removeEventListener("keydown", j[i], !1),
        delete j[i])),
        x(i, y),
        ((t,e)=>{
            const r = L(p, t).filter(e=>!e.getAttribute(p) || t.matches(e.getAttribute(p)));
            if (0 !== r.length)
                e[O("isActive")] ? r.forEach(t=>{
                    t[O("target")] || (t[O("target")] = e,
                    t.addEventListener("click", C, !1))
                }
                ) : (r.forEach(t=>{
                    t[O("target")] === e && (t[O("target")] = null,
                    t.removeEventListener("click", C, !1))
                }
                ),
                e.focus())
        }
        )(i, t)
    }
    )
      , M = t=>{
        x(t, k);
        const e = (t=>{
            if (t.hasAttribute(i) && t.getAttribute(i) && (t.hasAttribute(s) || t.hasAttribute(n))) {
                const e = z(t, s)
                  , r = z(t, n);
                z(t, i).forEach(i=>{
                    e.includes(i) && console.warn(D(i, s), t),
                    r.includes(i) && console.warn(D(i, n, !0), t)
                }
                )
            }
            const e = [i, s, n].reduce((e,r)=>{
                const a = z(t, r);
                return (r === i || r === s) && e.trigger.push(...a),
                (r === i || r === n) && e.target.push(...a),
                e
            }
            , {
                trigger: [],
                target: []
            });
            return !e.trigger.length && (t.hasAttribute(i) || t.hasAttribute(s)) && e.trigger.push(a),
            !e.target.length && (t.hasAttribute(i) || t.hasAttribute(n)) && e.target.push(a),
            e
        }
        )(t);
        return K(t, e.trigger),
        t[O("isActive")] = !t[O("isActive")],
        S(t),
        x(t, y),
        H(t, e.target, !1),
        (t=>{
            if (t.hasAttribute(d))
                return t.hasAttribute(A) ? console.warn(`You can't use '${d}' on a radio grouped trigger`) : t[O("isActive")] ? B(t) : void 0
        }
        )(t)
    }
      , R = t=>{
        const e = I(t);
        return 0 === e.length ? M(t) : -1 === e.indexOf(t) ? (e.forEach(M),
        M(t)) : -1 === e.indexOf(t) || t.hasAttribute(A) ? void 0 : M(t)
    }
      , U = t=>((t[Symbol.iterator] ? [...t] : [t]).forEach(t=>{
        t[O("unbind")] && t[O("unbind")]()
    }
    ),
    t)
      , _ = ()=>{
        [...document.querySelectorAll(`[${n}]:not([${b}]):not([${f}]):not([${$}]):not([${m}]):not([${v}]):not([${E}])`)].forEach(t=>{
            console.warn(`This trigger has the attribute '${n}', but no specified target\n`, t)
        }
        ),
        L(l).filter(t=>!t[O("isDefaultInitialized")]).forEach(t=>{
            if ((t.hasAttribute(c) || t.hasAttribute(A)) && I(t).length > 0)
                return console.warn(`Toggle group '${t.getAttribute(c) || t.getAttribute(A)}' must not have more than one trigger with '${l}'`);
            M(t),
            t[O("isDefaultInitialized")] = !0
        }
        );
        const t = L().filter(t=>!t[O("isInitialized")]);
        return t.forEach(t=>{
            const e = e=>{
                e.preventDefault(),
                (t.hasAttribute(c) || t.hasAttribute(A) ? R : M)(t)
            }
              , r = t.getAttribute(u) || "click";
            t.addEventListener(r, e, !1),
            t[O("unbind")] = ()=>{
                t.removeEventListener(r, e, !1),
                t[O("isInitialized")] = !1
            }
            ,
            t[O("isInitialized")] = !0
        }
        ),
        L(o).length > 0 && !document[O("isEscapeKeyInitialized")] && (document.addEventListener("keydown", t=>{
            "Escape" !== t.key && "Esc" !== t.key || L(o).forEach(t=>{
                if (t[O("isActive")])
                    return t.hasAttribute(A) ? console.warn(`You can't use '${o}' on a radio grouped trigger`) : (t.hasAttribute(c) ? R : M)(t)
            }
            )
        }
        , !1),
        document[O("isEscapeKeyInitialized")] = !0),
        L(r).length > 0 && !document[O("isArrowKeysInitialized")] && (document.addEventListener("keydown", t=>{
            const e = document.activeElement;
            if (-1 === ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", "Home", "End"].indexOf(t.key) || !e.hasAttribute(i) && !e.hasAttribute(s) && !e.hasAttribute(n) || !e.hasAttribute(r))
                return;
            if (!e.hasAttribute(c) && !e.hasAttribute(A))
                return console.warn(`You can't use '${r}' on a trigger without '${c}' or '${A}'`);
            t.preventDefault();
            const a = e.hasAttribute(c) ? L(`${c}='${e.getAttribute(c)}'`) : L(`${A}='${e.getAttribute(A)}'`);
            let o = e;
            switch (t.key) {
            case "ArrowUp":
            case "ArrowLeft":
                o = a.indexOf(e) > 0 ? a[a.indexOf(e) - 1] : a[a.length - 1];
                break;
            case "ArrowDown":
            case "ArrowRight":
                o = a.indexOf(e) < a.length - 1 ? a[a.indexOf(e) + 1] : a[0];
                break;
            case "Home":
                o = a[0];
                break;
            case "End":
                o = a[a.length - 1]
            }
            return o.focus(),
            o.dispatchEvent(new Event(o.getAttribute(u) || "click"))
        }
        , !1),
        document[O("isArrowKeysInitialized")] = !0),
        t
    }
      , F = ()=>{
        _(),
        document.removeEventListener("DOMContentLoaded", F)
    }
    ;
    document.addEventListener("DOMContentLoaded", F),
    window.easyToggleState = Object.assign(_, {
        isActive: t=>!!t[O("isActive")],
        unbind: U,
        unbindAll: ()=>U(L().filter(t=>t[O("isInitialized")]))
    })
}();

/*! Lazy Load 1.9.7 - MIT license - Copyright 2010-2015 Mika Tuupola */
!function(a, b, c, d) {
    var e = a(b);
    a.fn.lazyload = function(f) {
        function g() {
            var b = 0;
            i.each(function() {
                var c = a(this);
                if (!j.skip_invisible || c.is(":visible"))
                    if (a.abovethetop(this, j) || a.leftofbegin(this, j))
                        ;
                    else if (a.belowthefold(this, j) || a.rightoffold(this, j)) {
                        if (++b > j.failure_limit)
                            return !1
                    } else
                        c.trigger("appear"),
                        b = 0
            })
        }
        var h, i = this, j = {
            threshold: 0,
            failure_limit: 0,
            event: "scroll",
            effect: "show",
            container: b,
            data_attribute: "original",
            skip_invisible: !1,
            appear: null,
            load: null,
            placeholder: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC"
        };
        return f && (d !== f.failurelimit && (f.failure_limit = f.failurelimit,
        delete f.failurelimit),
        d !== f.effectspeed && (f.effect_speed = f.effectspeed,
        delete f.effectspeed),
        a.extend(j, f)),
        h = j.container === d || j.container === b ? e : a(j.container),
        0 === j.event.indexOf("scroll") && h.bind(j.event, function() {
            return g()
        }),
        this.each(function() {
            var b = this
              , c = a(b);
            b.loaded = !1,
            (c.attr("src") === d || c.attr("src") === !1) && c.is("img") && c.attr("src", j.placeholder),
            c.one("appear", function() {
                if (!this.loaded) {
                    if (j.appear) {
                        var d = i.length;
                        j.appear.call(b, d, j)
                    }
                    a("<img />").bind("load", function() {
                        var d = c.attr("data-" + j.data_attribute);
                        c.hide(),
                        c.is("img") ? c.attr("src", d) : c.css("background-image", "url('" + d + "')"),
                        c[j.effect](j.effect_speed),
                        b.loaded = !0;
                        var e = a.grep(i, function(a) {
                            return !a.loaded
                        });
                        if (i = a(e),
                        j.load) {
                            var f = i.length;
                            j.load.call(b, f, j)
                        }
                    }).attr("src", c.attr("data-" + j.data_attribute))
                }
            }),
            0 !== j.event.indexOf("scroll") && c.bind(j.event, function() {
                b.loaded || c.trigger("appear")
            })
        }),
        e.bind("resize", function() {
            g()
        }),
        /(?:iphone|ipod|ipad).*os 5/gi.test(navigator.appVersion) && e.bind("pageshow", function(b) {
            b.originalEvent && b.originalEvent.persisted && i.each(function() {
                a(this).trigger("appear")
            })
        }),
        a(c).ready(function() {
            g()
        }),
        this
    }
    ,
    a.belowthefold = function(c, f) {
        var g;
        return g = f.container === d || f.container === b ? (b.innerHeight ? b.innerHeight : e.height()) + e.scrollTop() : a(f.container).offset().top + a(f.container).height(),
        g <= a(c).offset().top - f.threshold
    }
    ,
    a.rightoffold = function(c, f) {
        var g;
        return g = f.container === d || f.container === b ? e.width() + e.scrollLeft() : a(f.container).offset().left + a(f.container).width(),
        g <= a(c).offset().left - f.threshold
    }
    ,
    a.abovethetop = function(c, f) {
        var g;
        return g = f.container === d || f.container === b ? e.scrollTop() : a(f.container).offset().top,
        g >= a(c).offset().top + f.threshold + a(c).height()
    }
    ,
    a.leftofbegin = function(c, f) {
        var g;
        return g = f.container === d || f.container === b ? e.scrollLeft() : a(f.container).offset().left,
        g >= a(c).offset().left + f.threshold + a(c).width()
    }
    ,
    a.inviewport = function(b, c) {
        return !(a.rightoffold(b, c) || a.leftofbegin(b, c) || a.belowthefold(b, c) || a.abovethetop(b, c))
    }
    ,
    a.extend(a.expr[":"], {
        "below-the-fold": function(b) {
            return a.belowthefold(b, {
                threshold: 0
            })
        },
        "above-the-top": function(b) {
            return !a.belowthefold(b, {
                threshold: 0
            })
        },
        "right-of-screen": function(b) {
            return a.rightoffold(b, {
                threshold: 0
            })
        },
        "left-of-screen": function(b) {
            return !a.rightoffold(b, {
                threshold: 0
            })
        },
        "in-viewport": function(b) {
            return a.inviewport(b, {
                threshold: 0
            })
        },
        "above-the-fold": function(b) {
            return !a.belowthefold(b, {
                threshold: 0
            })
        },
        "right-of-fold": function(b) {
            return a.rightoffold(b, {
                threshold: 0
            })
        },
        "left-of-fold": function(b) {
            return !a.rightoffold(b, {
                threshold: 0
            })
        }
    })
}(jQuery, window, document);

/*! Lazy Load 1.9.7 - MIT license - Copyright 2010-2015 Mika Tuupola */
!function() {
    var a = jQuery.event.special
      , b = "D" + +new Date
      , c = "D" + (+new Date + 1);
    a.scrollstart = {
        setup: function() {
            var c, d = function(b) {
                var d = this
                  , e = arguments;
                c ? clearTimeout(c) : (b.type = "scrollstart",
                jQuery.event.dispatch.apply(d, e)),
                c = setTimeout(function() {
                    c = null
                }, a.scrollstop.latency)
            };
            jQuery(this).bind("scroll", d).data(b, d)
        },
        teardown: function() {
            jQuery(this).unbind("scroll", jQuery(this).data(b))
        }
    },
    a.scrollstop = {
        latency: 300,
        setup: function() {
            var b, d = function(c) {
                var d = this
                  , e = arguments;
                b && clearTimeout(b),
                b = setTimeout(function() {
                    b = null,
                    c.type = "scrollstop",
                    jQuery.event.dispatch.apply(d, e)
                }, a.scrollstop.latency)
            };
            jQuery(this).bind("scroll", d).data(c, d)
        },
        teardown: function() {
            jQuery(this).unbind("scroll", jQuery(this).data(c))
        }
    }
}();

!function(n, t) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (n = "undefined" != typeof globalThis ? globalThis : n || self).LazyLoad = t()
}(this, (function() {
    "use strict";
    function n() {
        return n = Object.assign || function(n) {
            for (var t = 1; t < arguments.length; t++) {
                var e = arguments[t];
                for (var i in e)
                    Object.prototype.hasOwnProperty.call(e, i) && (n[i] = e[i])
            }
            return n
        }
        ,
        n.apply(this, arguments)
    }
    var t = "undefined" != typeof window
      , e = t && !("onscroll"in window) || "undefined" != typeof navigator && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent)
      , i = t && "IntersectionObserver"in window
      , o = t && "classList"in document.createElement("p")
      , a = t && window.devicePixelRatio > 1
      , r = {
        elements_selector: ".lazy",
        container: e || t ? document : null,
        threshold: 300,
        thresholds: null,
        data_src: "src",
        data_srcset: "srcset",
        data_sizes: "sizes",
        data_bg: "bg",
        data_bg_hidpi: "bg-hidpi",
        data_bg_multi: "bg-multi",
        data_bg_multi_hidpi: "bg-multi-hidpi",
        data_poster: "poster",
        class_applied: "applied",
        class_loading: "loading",
        class_loaded: "loaded",
        class_error: "error",
        class_entered: "entered",
        class_exited: "exited",
        unobserve_completed: !0,
        unobserve_entered: !1,
        cancel_on_exit: !0,
        callback_enter: null,
        callback_exit: null,
        callback_applied: null,
        callback_loading: null,
        callback_loaded: null,
        callback_error: null,
        callback_finish: null,
        callback_cancel: null,
        use_native: !1
    }
      , c = function(t) {
        return n({}, r, t)
    }
      , u = function(n, t) {
        var e, i = "LazyLoad::Initialized", o = new n(t);
        try {
            e = new CustomEvent(i,{
                detail: {
                    instance: o
                }
            })
        } catch (n) {
            (e = document.createEvent("CustomEvent")).initCustomEvent(i, !1, !1, {
                instance: o
            })
        }
        window.dispatchEvent(e)
    }
      , l = "src"
      , s = "srcset"
      , f = "sizes"
      , d = "poster"
      , _ = "llOriginalAttrs"
      , g = "loading"
      , v = "loaded"
      , b = "applied"
      , p = "error"
      , h = "native"
      , m = "data-"
      , E = "ll-status"
      , I = function(n, t) {
        return n.getAttribute(m + t)
    }
      , y = function(n) {
        return I(n, E)
    }
      , A = function(n, t) {
        return function(n, t, e) {
            var i = "data-ll-status";
            null !== e ? n.setAttribute(i, e) : n.removeAttribute(i)
        }(n, 0, t)
    }
      , k = function(n) {
        return A(n, null)
    }
      , L = function(n) {
        return null === y(n)
    }
      , w = function(n) {
        return y(n) === h
    }
      , x = [g, v, b, p]
      , O = function(n, t, e, i) {
        n && (void 0 === i ? void 0 === e ? n(t) : n(t, e) : n(t, e, i))
    }
      , N = function(n, t) {
        o ? n.classList.add(t) : n.className += (n.className ? " " : "") + t
    }
      , C = function(n, t) {
        o ? n.classList.remove(t) : n.className = n.className.replace(new RegExp("(^|\\s+)" + t + "(\\s+|$)"), " ").replace(/^\s+/, "").replace(/\s+$/, "")
    }
      , M = function(n) {
        return n.llTempImage
    }
      , z = function(n, t) {
        if (t) {
            var e = t._observer;
            e && e.unobserve(n)
        }
    }
      , R = function(n, t) {
        n && (n.loadingCount += t)
    }
      , T = function(n, t) {
        n && (n.toLoadCount = t)
    }
      , G = function(n) {
        for (var t, e = [], i = 0; t = n.children[i]; i += 1)
            "SOURCE" === t.tagName && e.push(t);
        return e
    }
      , D = function(n, t) {
        var e = n.parentNode;
        e && "PICTURE" === e.tagName && G(e).forEach(t)
    }
      , V = function(n, t) {
        G(n).forEach(t)
    }
      , F = [l]
      , j = [l, d]
      , P = [l, s, f]
      , S = function(n) {
        return !!n[_]
    }
      , U = function(n) {
        return n[_]
    }
      , $ = function(n) {
        return delete n[_]
    }
      , q = function(n, t) {
        if (!S(n)) {
            var e = {};
            t.forEach((function(t) {
                e[t] = n.getAttribute(t)
            }
            )),
            n[_] = e
        }
    }
      , H = function(n, t) {
        if (S(n)) {
            var e = U(n);
            t.forEach((function(t) {
                !function(n, t, e) {
                    e ? n.setAttribute(t, e) : n.removeAttribute(t)
                }(n, t, e[t])
            }
            ))
        }
    }
      , B = function(n, t, e) {
        N(n, t.class_loading),
        A(n, g),
        e && (R(e, 1),
        O(t.callback_loading, n, e))
    }
      , J = function(n, t, e) {
        e && n.setAttribute(t, e)
    }
      , K = function(n, t) {
        J(n, f, I(n, t.data_sizes)),
        J(n, s, I(n, t.data_srcset)),
        J(n, l, I(n, t.data_src))
    }
      , Q = {
        IMG: function(n, t) {
            D(n, (function(n) {
                q(n, P),
                K(n, t)
            }
            )),
            q(n, P),
            K(n, t)
        },
        IFRAME: function(n, t) {
            q(n, F),
            J(n, l, I(n, t.data_src))
        },
        VIDEO: function(n, t) {
            V(n, (function(n) {
                q(n, F),
                J(n, l, I(n, t.data_src))
            }
            )),
            q(n, j),
            J(n, d, I(n, t.data_poster)),
            J(n, l, I(n, t.data_src)),
            n.load()
        }
    }
      , W = ["IMG", "IFRAME", "VIDEO"]
      , X = function(n, t) {
        !t || function(n) {
            return n.loadingCount > 0
        }(t) || function(n) {
            return n.toLoadCount > 0
        }(t) || O(n.callback_finish, t)
    }
      , Y = function(n, t, e) {
        n.addEventListener(t, e),
        n.llEvLisnrs[t] = e
    }
      , Z = function(n, t, e) {
        n.removeEventListener(t, e)
    }
      , nn = function(n) {
        return !!n.llEvLisnrs
    }
      , tn = function(n) {
        if (nn(n)) {
            var t = n.llEvLisnrs;
            for (var e in t) {
                var i = t[e];
                Z(n, e, i)
            }
            delete n.llEvLisnrs
        }
    }
      , en = function(n, t, e) {
        !function(n) {
            delete n.llTempImage
        }(n),
        R(e, -1),
        function(n) {
            n && (n.toLoadCount -= 1)
        }(e),
        C(n, t.class_loading),
        t.unobserve_completed && z(n, e)
    }
      , on = function(n, t, e) {
        var i = M(n) || n;
        nn(i) || function(n, t, e) {
            nn(n) || (n.llEvLisnrs = {});
            var i = "VIDEO" === n.tagName ? "loadeddata" : "load";
            Y(n, i, t),
            Y(n, "error", e)
        }(i, (function(o) {
            !function(n, t, e, i) {
                var o = w(t);
                en(t, e, i),
                N(t, e.class_loaded),
                A(t, v),
                O(e.callback_loaded, t, i),
                o || X(e, i)
            }(0, n, t, e),
            tn(i)
        }
        ), (function(o) {
            !function(n, t, e, i) {
                var o = w(t);
                en(t, e, i),
                N(t, e.class_error),
                A(t, p),
                O(e.callback_error, t, i),
                o || X(e, i)
            }(0, n, t, e),
            tn(i)
        }
        ))
    }
      , an = function(n, t, e) {
        !function(n) {
            n.llTempImage = document.createElement("IMG")
        }(n),
        on(n, t, e),
        function(n) {
            S(n) || (n[_] = {
                backgroundImage: n.style.backgroundImage
            })
        }(n),
        function(n, t, e) {
            var i = I(n, t.data_bg)
              , o = I(n, t.data_bg_hidpi)
              , r = a && o ? o : i;
            r && (n.style.backgroundImage = 'url("'.concat(r, '")'),
            M(n).setAttribute(l, r),
            B(n, t, e))
        }(n, t, e),
        function(n, t, e) {
            var i = I(n, t.data_bg_multi)
              , o = I(n, t.data_bg_multi_hidpi)
              , r = a && o ? o : i;
            r && (n.style.backgroundImage = r,
            function(n, t, e) {
                N(n, t.class_applied),
                A(n, b),
                e && (t.unobserve_completed && z(n, t),
                O(t.callback_applied, n, e))
            }(n, t, e))
        }(n, t, e)
    }
      , rn = function(n, t, e) {
        !function(n) {
            return W.indexOf(n.tagName) > -1
        }(n) ? an(n, t, e) : function(n, t, e) {
            on(n, t, e),
            function(n, t, e) {
                var i = Q[n.tagName];
                i && (i(n, t),
                B(n, t, e))
            }(n, t, e)
        }(n, t, e)
    }
      , cn = function(n) {
        n.removeAttribute(l),
        n.removeAttribute(s),
        n.removeAttribute(f)
    }
      , un = function(n) {
        D(n, (function(n) {
            H(n, P)
        }
        )),
        H(n, P)
    }
      , ln = {
        IMG: un,
        IFRAME: function(n) {
            H(n, F)
        },
        VIDEO: function(n) {
            V(n, (function(n) {
                H(n, F)
            }
            )),
            H(n, j),
            n.load()
        }
    }
      , sn = function(n, t) {
        (function(n) {
            var t = ln[n.tagName];
            t ? t(n) : function(n) {
                if (S(n)) {
                    var t = U(n);
                    n.style.backgroundImage = t.backgroundImage
                }
            }(n)
        }
        )(n),
        function(n, t) {
            L(n) || w(n) || (C(n, t.class_entered),
            C(n, t.class_exited),
            C(n, t.class_applied),
            C(n, t.class_loading),
            C(n, t.class_loaded),
            C(n, t.class_error))
        }(n, t),
        k(n),
        $(n)
    }
      , fn = ["IMG", "IFRAME", "VIDEO"]
      , dn = function(n) {
        return n.use_native && "loading"in HTMLImageElement.prototype
    }
      , _n = function(n, t, e) {
        n.forEach((function(n) {
            return function(n) {
                return n.isIntersecting || n.intersectionRatio > 0
            }(n) ? function(n, t, e, i) {
                var o = function(n) {
                    return x.indexOf(y(n)) >= 0
                }(n);
                A(n, "entered"),
                N(n, e.class_entered),
                C(n, e.class_exited),
                function(n, t, e) {
                    t.unobserve_entered && z(n, e)
                }(n, e, i),
                O(e.callback_enter, n, t, i),
                o || rn(n, e, i)
            }(n.target, n, t, e) : function(n, t, e, i) {
                L(n) || (N(n, e.class_exited),
                function(n, t, e, i) {
                    e.cancel_on_exit && function(n) {
                        return y(n) === g
                    }(n) && "IMG" === n.tagName && (tn(n),
                    function(n) {
                        D(n, (function(n) {
                            cn(n)
                        }
                        )),
                        cn(n)
                    }(n),
                    un(n),
                    C(n, e.class_loading),
                    R(i, -1),
                    k(n),
                    O(e.callback_cancel, n, t, i))
                }(n, t, e, i),
                O(e.callback_exit, n, t, i))
            }(n.target, n, t, e)
        }
        ))
    }
      , gn = function(n) {
        return Array.prototype.slice.call(n)
    }
      , vn = function(n) {
        return n.container.querySelectorAll(n.elements_selector)
    }
      , bn = function(n) {
        return function(n) {
            return y(n) === p
        }(n)
    }
      , pn = function(n, t) {
        return function(n) {
            return gn(n).filter(L)
        }(n || vn(t))
    }
      , hn = function(n, e) {
        var o = c(n);
        this._settings = o,
        this.loadingCount = 0,
        function(n, t) {
            i && !dn(n) && (t._observer = new IntersectionObserver((function(e) {
                _n(e, n, t)
            }
            ),function(n) {
                return {
                    root: n.container === document ? null : n.container,
                    rootMargin: n.thresholds || n.threshold + "px"
                }
            }(n)))
        }(o, this),
        function(n, e) {
            t && window.addEventListener("online", (function() {
                !function(n, t) {
                    var e;
                    (e = vn(n),
                    gn(e).filter(bn)).forEach((function(t) {
                        C(t, n.class_error),
                        k(t)
                    }
                    )),
                    t.update()
                }(n, e)
            }
            ))
        }(o, this),
        this.update(e)
    };
    return hn.prototype = {
        update: function(n) {
            var t, o, a = this._settings, r = pn(n, a);
            T(this, r.length),
            !e && i ? dn(a) ? function(n, t, e) {
                n.forEach((function(n) {
                    -1 !== fn.indexOf(n.tagName) && function(n, t, e) {
                        n.setAttribute("loading", "lazy"),
                        on(n, t, e),
                        function(n, t) {
                            var e = Q[n.tagName];
                            e && e(n, t)
                        }(n, t),
                        A(n, h)
                    }(n, t, e)
                }
                )),
                T(e, 0)
            }(r, a, this) : (o = r,
            function(n) {
                n.disconnect()
            }(t = this._observer),
            function(n, t) {
                t.forEach((function(t) {
                    n.observe(t)
                }
                ))
            }(t, o)) : this.loadAll(r)
        },
        destroy: function() {
            this._observer && this._observer.disconnect(),
            vn(this._settings).forEach((function(n) {
                $(n)
            }
            )),
            delete this._observer,
            delete this._settings,
            delete this.loadingCount,
            delete this.toLoadCount
        },
        loadAll: function(n) {
            var t = this
              , e = this._settings;
            pn(n, e).forEach((function(n) {
                z(n, t),
                rn(n, e, t)
            }
            ))
        },
        restoreAll: function() {
            var n = this._settings;
            vn(n).forEach((function(t) {
                sn(t, n)
            }
            ))
        }
    },
    hn.load = function(n, t) {
        var e = c(t);
        rn(n, e)
    }
    ,
    hn.resetStatus = function(n) {
        k(n)
    }
    ,
    t && function(n, t) {
        if (t)
            if (t.length)
                for (var e, i = 0; e = t[i]; i += 1)
                    u(n, e);
            else
                u(n, t)
    }(hn, window.lazyLoadOptions),
    hn
}
));

/*! jquery.dynamicmaxheight.js */
!function(t, i, e, n) {
    "use strict";
    t.fn.dynamicMaxHeight = function(i) {
        function e(t, i) {
            var e;
            e = t.hasClass(d) ? i.data("replace-text") : i.attr("title"),
            i.text(e)
        }
        function n(t, i) {
            t.find("." + c).css("max-height", i)
        }
        function a(t, i) {
            i.css("display", "inline-block")
        }
        var c = "dynamic-height-wrap"
          , d = "dynamic-height-active"
          , o = "js-dynamic-show-hide";
        return this.each(function(i, s) {
            var h = t(s)
              , u = h.data("maxheight")
              , l = h.find("." + c).outerHeight()
              , r = h.find("." + o);
            h.attr("data-itemheight", l),
            l > u && (n(h, u),
            h.toggleClass(d),
            a(h, r)),
            r.click(function() {
                h.hasClass(d) ? n(h, l) : n(h, u),
                e(h, r),
                h.toggleClass(d)
            })
        })
    }
}(window.jQuery || window.$, document, window),
"undefined" != typeof module && module.exports && (module.exports = dynamicMaxHeight);

/*!
 * jQuery Mousewheel 3.1.13
 * Copyright OpenJS Foundation and other contributors
 */
!function(e) {
    "function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof exports ? module.exports = e : e(jQuery)
}(function(a) {
    var u, r, e = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"], t = "onwheel"in window.document || 9 <= window.document.documentMode ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"], f = Array.prototype.slice;
    if (a.event.fixHooks)
        for (var n = e.length; n; )
            a.event.fixHooks[e[--n]] = a.event.mouseHooks;
    var d = a.event.special.mousewheel = {
        version: "3.1.12",
        setup: function() {
            if (this.addEventListener)
                for (var e = t.length; e; )
                    this.addEventListener(t[--e], i, !1);
            else
                this.onmousewheel = i;
            a.data(this, "mousewheel-line-height", d.getLineHeight(this)),
            a.data(this, "mousewheel-page-height", d.getPageHeight(this))
        },
        teardown: function() {
            if (this.removeEventListener)
                for (var e = t.length; e; )
                    this.removeEventListener(t[--e], i, !1);
            else
                this.onmousewheel = null;
            a.removeData(this, "mousewheel-line-height"),
            a.removeData(this, "mousewheel-page-height")
        },
        getLineHeight: function(e) {
            var t = a(e)
              , e = t["offsetParent"in a.fn ? "offsetParent" : "parent"]();
            return e.length || (e = a("body")),
            parseInt(e.css("fontSize"), 10) || parseInt(t.css("fontSize"), 10) || 16
        },
        getPageHeight: function(e) {
            return a(e).height()
        },
        settings: {
            adjustOldDeltas: !0,
            normalizeOffset: !0
        }
    };
    function i(e) {
        var t, n = e || window.event, i = f.call(arguments, 1), o = 0, l = 0, s = 0, h = 0;
        if ((e = a.event.fix(n)).type = "mousewheel",
        "detail"in n && (s = -1 * n.detail),
        "wheelDelta"in n && (s = n.wheelDelta),
        "wheelDeltaY"in n && (s = n.wheelDeltaY),
        "wheelDeltaX"in n && (l = -1 * n.wheelDeltaX),
        "axis"in n && n.axis === n.HORIZONTAL_AXIS && (l = -1 * s,
        s = 0),
        o = 0 === s ? l : s,
        "deltaY"in n && (o = s = -1 * n.deltaY),
        "deltaX"in n && (l = n.deltaX,
        0 === s && (o = -1 * l)),
        0 !== s || 0 !== l)
            return 1 === n.deltaMode ? (o *= t = a.data(this, "mousewheel-line-height"),
            s *= t,
            l *= t) : 2 === n.deltaMode && (o *= t = a.data(this, "mousewheel-page-height"),
            s *= t,
            l *= t),
            h = Math.max(Math.abs(s), Math.abs(l)),
            (!r || h < r) && c(n, r = h) && (r /= 40),
            c(n, h) && (o /= 40,
            l /= 40,
            s /= 40),
            o = Math[1 <= o ? "floor" : "ceil"](o / r),
            l = Math[1 <= l ? "floor" : "ceil"](l / r),
            s = Math[1 <= s ? "floor" : "ceil"](s / r),
            d.settings.normalizeOffset && this.getBoundingClientRect && (h = this.getBoundingClientRect(),
            e.offsetX = e.clientX - h.left,
            e.offsetY = e.clientY - h.top),
            e.deltaX = l,
            e.deltaY = s,
            e.deltaFactor = r,
            e.deltaMode = 0,
            i.unshift(e, o, l, s),
            u && window.clearTimeout(u),
            u = window.setTimeout(w, 200),
            (a.event.dispatch || a.event.handle).apply(this, i)
    }
    function w() {
        r = null
    }
    function c(e, t) {
        return d.settings.adjustOldDeltas && "mousewheel" === e.type && t % 120 == 0
    }
    a.fn.extend({
        mousewheel: function(e) {
            return e ? this.on("mousewheel", e) : this.trigger("mousewheel")
        },
        unmousewheel: function(e) {
            return this.off("mousewheel", e)
        }
    })
});

(function(r) {
    r.fn.qrcode = function(h) {
        var s;
        function u(a) {
            this.mode = s;
            this.data = a
        }
        function o(a, c) {
            this.typeNumber = a;
            this.errorCorrectLevel = c;
            this.modules = null;
            this.moduleCount = 0;
            this.dataCache = null;
            this.dataList = []
        }
        function q(a, c) {
            if (void 0 == a.length)
                throw Error(a.length + "/" + c);
            for (var d = 0; d < a.length && 0 == a[d]; )
                d++;
            this.num = Array(a.length - d + c);
            for (var b = 0; b < a.length - d; b++)
                this.num[b] = a[b + d]
        }
        function p(a, c) {
            this.totalCount = a;
            this.dataCount = c
        }
        function t() {
            this.buffer = [];
            this.length = 0
        }
        u.prototype = {
            getLength: function() {
                return this.data.length
            },
            write: function(a) {
                for (var c = 0; c < this.data.length; c++)
                    a.put(this.data.charCodeAt(c), 8)
            }
        };
        o.prototype = {
            addData: function(a) {
                this.dataList.push(new u(a));
                this.dataCache = null
            },
            isDark: function(a, c) {
                if (0 > a || this.moduleCount <= a || 0 > c || this.moduleCount <= c)
                    throw Error(a + "," + c);
                return this.modules[a][c]
            },
            getModuleCount: function() {
                return this.moduleCount
            },
            make: function() {
                if (1 > this.typeNumber) {
                    for (var a = 1, a = 1; 40 > a; a++) {
                        for (var c = p.getRSBlocks(a, this.errorCorrectLevel), d = new t, b = 0, e = 0; e < c.length; e++)
                            b += c[e].dataCount;
                        for (e = 0; e < this.dataList.length; e++)
                            c = this.dataList[e],
                            d.put(c.mode, 4),
                            d.put(c.getLength(), j.getLengthInBits(c.mode, a)),
                            c.write(d);
                        if (d.getLengthInBits() <= 8 * b)
                            break
                    }
                    this.typeNumber = a
                }
                this.makeImpl(!1, this.getBestMaskPattern())
            },
            makeImpl: function(a, c) {
                this.moduleCount = 4 * this.typeNumber + 17;
                this.modules = Array(this.moduleCount);
                for (var d = 0; d < this.moduleCount; d++) {
                    this.modules[d] = Array(this.moduleCount);
                    for (var b = 0; b < this.moduleCount; b++)
                        this.modules[d][b] = null
                }
                this.setupPositionProbePattern(0, 0);
                this.setupPositionProbePattern(this.moduleCount - 7, 0);
                this.setupPositionProbePattern(0, this.moduleCount - 7);
                this.setupPositionAdjustPattern();
                this.setupTimingPattern();
                this.setupTypeInfo(a, c);
                7 <= this.typeNumber && this.setupTypeNumber(a);
                null == this.dataCache && (this.dataCache = o.createData(this.typeNumber, this.errorCorrectLevel, this.dataList));
                this.mapData(this.dataCache, c)
            },
            setupPositionProbePattern: function(a, c) {
                for (var d = -1; 7 >= d; d++)
                    if (!(-1 >= a + d || this.moduleCount <= a + d))
                        for (var b = -1; 7 >= b; b++)
                            -1 >= c + b || this.moduleCount <= c + b || (this.modules[a + d][c + b] = 0 <= d && 6 >= d && (0 == b || 6 == b) || 0 <= b && 6 >= b && (0 == d || 6 == d) || 2 <= d && 4 >= d && 2 <= b && 4 >= b ? !0 : !1)
            },
            getBestMaskPattern: function() {
                for (var a = 0, c = 0, d = 0; 8 > d; d++) {
                    this.makeImpl(!0, d);
                    var b = j.getLostPoint(this);
                    if (0 == d || a > b)
                        a = b,
                        c = d
                }
                return c
            },
            createMovieClip: function(a, c, d) {
                a = a.createEmptyMovieClip(c, d);
                this.make();
                for (c = 0; c < this.modules.length; c++)
                    for (var d = 1 * c, b = 0; b < this.modules[c].length; b++) {
                        var e = 1 * b;
                        this.modules[c][b] && (a.beginFill(0, 100),
                        a.moveTo(e, d),
                        a.lineTo(e + 1, d),
                        a.lineTo(e + 1, d + 1),
                        a.lineTo(e, d + 1),
                        a.endFill())
                    }
                return a
            },
            setupTimingPattern: function() {
                for (var a = 8; a < this.moduleCount - 8; a++)
                    null == this.modules[a][6] && (this.modules[a][6] = 0 == a % 2);
                for (a = 8; a < this.moduleCount - 8; a++)
                    null == this.modules[6][a] && (this.modules[6][a] = 0 == a % 2)
            },
            setupPositionAdjustPattern: function() {
                for (var a = j.getPatternPosition(this.typeNumber), c = 0; c < a.length; c++)
                    for (var d = 0; d < a.length; d++) {
                        var b = a[c]
                          , e = a[d];
                        if (null == this.modules[b][e])
                            for (var f = -2; 2 >= f; f++)
                                for (var i = -2; 2 >= i; i++)
                                    this.modules[b + f][e + i] = -2 == f || 2 == f || -2 == i || 2 == i || 0 == f && 0 == i ? !0 : !1
                    }
            },
            setupTypeNumber: function(a) {
                for (var c = j.getBCHTypeNumber(this.typeNumber), d = 0; 18 > d; d++) {
                    var b = !a && 1 == (c >> d & 1);
                    this.modules[Math.floor(d / 3)][d % 3 + this.moduleCount - 8 - 3] = b
                }
                for (d = 0; 18 > d; d++)
                    b = !a && 1 == (c >> d & 1),
                    this.modules[d % 3 + this.moduleCount - 8 - 3][Math.floor(d / 3)] = b
            },
            setupTypeInfo: function(a, c) {
                for (var d = j.getBCHTypeInfo(this.errorCorrectLevel << 3 | c), b = 0; 15 > b; b++) {
                    var e = !a && 1 == (d >> b & 1);
                    6 > b ? this.modules[b][8] = e : 8 > b ? this.modules[b + 1][8] = e : this.modules[this.moduleCount - 15 + b][8] = e
                }
                for (b = 0; 15 > b; b++)
                    e = !a && 1 == (d >> b & 1),
                    8 > b ? this.modules[8][this.moduleCount - b - 1] = e : 9 > b ? this.modules[8][15 - b - 1 + 1] = e : this.modules[8][15 - b - 1] = e;
                this.modules[this.moduleCount - 8][8] = !a
            },
            mapData: function(a, c) {
                for (var d = -1, b = this.moduleCount - 1, e = 7, f = 0, i = this.moduleCount - 1; 0 < i; i -= 2)
                    for (6 == i && i--; ; ) {
                        for (var g = 0; 2 > g; g++)
                            if (null == this.modules[b][i - g]) {
                                var n = !1;
                                f < a.length && (n = 1 == (a[f] >>> e & 1));
                                j.getMask(c, b, i - g) && (n = !n);
                                this.modules[b][i - g] = n;
                                e--;
                                -1 == e && (f++,
                                e = 7)
                            }
                        b += d;
                        if (0 > b || this.moduleCount <= b) {
                            b -= d;
                            d = -d;
                            break
                        }
                    }
            }
        };
        o.PAD0 = 236;
        o.PAD1 = 17;
        o.createData = function(a, c, d) {
            for (var c = p.getRSBlocks(a, c), b = new t, e = 0; e < d.length; e++) {
                var f = d[e];
                b.put(f.mode, 4);
                b.put(f.getLength(), j.getLengthInBits(f.mode, a));
                f.write(b)
            }
            for (e = a = 0; e < c.length; e++)
                a += c[e].dataCount;
            if (b.getLengthInBits() > 8 * a)
                throw Error("code length overflow. (" + b.getLengthInBits() + ">" + 8 * a + ")");
            for (b.getLengthInBits() + 4 <= 8 * a && b.put(0, 4); 0 != b.getLengthInBits() % 8; )
                b.putBit(!1);
            for (; !(b.getLengthInBits() >= 8 * a); ) {
                b.put(o.PAD0, 8);
                if (b.getLengthInBits() >= 8 * a)
                    break;
                b.put(o.PAD1, 8)
            }
            return o.createBytes(b, c)
        }
        ;
        o.createBytes = function(a, c) {
            for (var d = 0, b = 0, e = 0, f = Array(c.length), i = Array(c.length), g = 0; g < c.length; g++) {
                var n = c[g].dataCount
                  , h = c[g].totalCount - n
                  , b = Math.max(b, n)
                  , e = Math.max(e, h);
                f[g] = Array(n);
                for (var k = 0; k < f[g].length; k++)
                    f[g][k] = 255 & a.buffer[k + d];
                d += n;
                k = j.getErrorCorrectPolynomial(h);
                n = (new q(f[g],k.getLength() - 1)).mod(k);
                i[g] = Array(k.getLength() - 1);
                for (k = 0; k < i[g].length; k++)
                    h = k + n.getLength() - i[g].length,
                    i[g][k] = 0 <= h ? n.get(h) : 0
            }
            for (k = g = 0; k < c.length; k++)
                g += c[k].totalCount;
            d = Array(g);
            for (k = n = 0; k < b; k++)
                for (g = 0; g < c.length; g++)
                    k < f[g].length && (d[n++] = f[g][k]);
            for (k = 0; k < e; k++)
                for (g = 0; g < c.length; g++)
                    k < i[g].length && (d[n++] = i[g][k]);
            return d
        }
        ;
        s = 4;
        for (var j = {
            PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]],
            G15: 1335,
            G18: 7973,
            G15_MASK: 21522,
            getBCHTypeInfo: function(a) {
                for (var c = a << 10; 0 <= j.getBCHDigit(c) - j.getBCHDigit(j.G15); )
                    c ^= j.G15 << j.getBCHDigit(c) - j.getBCHDigit(j.G15);
                return (a << 10 | c) ^ j.G15_MASK
            },
            getBCHTypeNumber: function(a) {
                for (var c = a << 12; 0 <= j.getBCHDigit(c) - j.getBCHDigit(j.G18); )
                    c ^= j.G18 << j.getBCHDigit(c) - j.getBCHDigit(j.G18);
                return a << 12 | c
            },
            getBCHDigit: function(a) {
                for (var c = 0; 0 != a; )
                    c++,
                    a >>>= 1;
                return c
            },
            getPatternPosition: function(a) {
                return j.PATTERN_POSITION_TABLE[a - 1]
            },
            getMask: function(a, c, d) {
                switch (a) {
                case 0:
                    return 0 == (c + d) % 2;
                case 1:
                    return 0 == c % 2;
                case 2:
                    return 0 == d % 3;
                case 3:
                    return 0 == (c + d) % 3;
                case 4:
                    return 0 == (Math.floor(c / 2) + Math.floor(d / 3)) % 2;
                case 5:
                    return 0 == c * d % 2 + c * d % 3;
                case 6:
                    return 0 == (c * d % 2 + c * d % 3) % 2;
                case 7:
                    return 0 == (c * d % 3 + (c + d) % 2) % 2;
                default:
                    throw Error("bad maskPattern:" + a);
                }
            },
            getErrorCorrectPolynomial: function(a) {
                for (var c = new q([1],0), d = 0; d < a; d++)
                    c = c.multiply(new q([1, l.gexp(d)],0));
                return c
            },
            getLengthInBits: function(a, c) {
                if (1 <= c && 10 > c)
                    switch (a) {
                    case 1:
                        return 10;
                    case 2:
                        return 9;
                    case s:
                        return 8;
                    case 8:
                        return 8;
                    default:
                        throw Error("mode:" + a);
                    }
                else if (27 > c)
                    switch (a) {
                    case 1:
                        return 12;
                    case 2:
                        return 11;
                    case s:
                        return 16;
                    case 8:
                        return 10;
                    default:
                        throw Error("mode:" + a);
                    }
                else if (41 > c)
                    switch (a) {
                    case 1:
                        return 14;
                    case 2:
                        return 13;
                    case s:
                        return 16;
                    case 8:
                        return 12;
                    default:
                        throw Error("mode:" + a);
                    }
                else
                    throw Error("type:" + c);
            },
            getLostPoint: function(a) {
                for (var c = a.getModuleCount(), d = 0, b = 0; b < c; b++)
                    for (var e = 0; e < c; e++) {
                        for (var f = 0, i = a.isDark(b, e), g = -1; 1 >= g; g++)
                            if (!(0 > b + g || c <= b + g))
                                for (var h = -1; 1 >= h; h++)
                                    0 > e + h || c <= e + h || 0 == g && 0 == h || i == a.isDark(b + g, e + h) && f++;
                        5 < f && (d += 3 + f - 5)
                    }
                for (b = 0; b < c - 1; b++)
                    for (e = 0; e < c - 1; e++)
                        if (f = 0,
                        a.isDark(b, e) && f++,
                        a.isDark(b + 1, e) && f++,
                        a.isDark(b, e + 1) && f++,
                        a.isDark(b + 1, e + 1) && f++,
                        0 == f || 4 == f)
                            d += 3;
                for (b = 0; b < c; b++)
                    for (e = 0; e < c - 6; e++)
                        a.isDark(b, e) && !a.isDark(b, e + 1) && a.isDark(b, e + 2) && a.isDark(b, e + 3) && a.isDark(b, e + 4) && !a.isDark(b, e + 5) && a.isDark(b, e + 6) && (d += 40);
                for (e = 0; e < c; e++)
                    for (b = 0; b < c - 6; b++)
                        a.isDark(b, e) && !a.isDark(b + 1, e) && a.isDark(b + 2, e) && a.isDark(b + 3, e) && a.isDark(b + 4, e) && !a.isDark(b + 5, e) && a.isDark(b + 6, e) && (d += 40);
                for (e = f = 0; e < c; e++)
                    for (b = 0; b < c; b++)
                        a.isDark(b, e) && f++;
                a = Math.abs(100 * f / c / c - 50) / 5;
                return d + 10 * a
            }
        }, l = {
            glog: function(a) {
                if (1 > a)
                    throw Error("glog(" + a + ")");
                return l.LOG_TABLE[a]
            },
            gexp: function(a) {
                for (; 0 > a; )
                    a += 255;
                for (; 256 <= a; )
                    a -= 255;
                return l.EXP_TABLE[a]
            },
            EXP_TABLE: Array(256),
            LOG_TABLE: Array(256)
        }, m = 0; 8 > m; m++)
            l.EXP_TABLE[m] = 1 << m;
        for (m = 8; 256 > m; m++)
            l.EXP_TABLE[m] = l.EXP_TABLE[m - 4] ^ l.EXP_TABLE[m - 5] ^ l.EXP_TABLE[m - 6] ^ l.EXP_TABLE[m - 8];
        for (m = 0; 255 > m; m++)
            l.LOG_TABLE[l.EXP_TABLE[m]] = m;
        q.prototype = {
            get: function(a) {
                return this.num[a]
            },
            getLength: function() {
                return this.num.length
            },
            multiply: function(a) {
                for (var c = Array(this.getLength() + a.getLength() - 1), d = 0; d < this.getLength(); d++)
                    for (var b = 0; b < a.getLength(); b++)
                        c[d + b] ^= l.gexp(l.glog(this.get(d)) + l.glog(a.get(b)));
                return new q(c,0)
            },
            mod: function(a) {
                if (0 > this.getLength() - a.getLength())
                    return this;
                for (var c = l.glog(this.get(0)) - l.glog(a.get(0)), d = Array(this.getLength()), b = 0; b < this.getLength(); b++)
                    d[b] = this.get(b);
                for (b = 0; b < a.getLength(); b++)
                    d[b] ^= l.gexp(l.glog(a.get(b)) + c);
                return (new q(d,0)).mod(a)
            }
        };
        p.RS_BLOCK_TABLE = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]];
        p.getRSBlocks = function(a, c) {
            var d = p.getRsBlockTable(a, c);
            if (void 0 == d)
                throw Error("bad rs block @ typeNumber:" + a + "/errorCorrectLevel:" + c);
            for (var b = d.length / 3, e = [], f = 0; f < b; f++)
                for (var h = d[3 * f + 0], g = d[3 * f + 1], j = d[3 * f + 2], l = 0; l < h; l++)
                    e.push(new p(g,j));
            return e
        }
        ;
        p.getRsBlockTable = function(a, c) {
            switch (c) {
            case 1:
                return p.RS_BLOCK_TABLE[4 * (a - 1) + 0];
            case 0:
                return p.RS_BLOCK_TABLE[4 * (a - 1) + 1];
            case 3:
                return p.RS_BLOCK_TABLE[4 * (a - 1) + 2];
            case 2:
                return p.RS_BLOCK_TABLE[4 * (a - 1) + 3]
            }
        }
        ;
        t.prototype = {
            get: function(a) {
                return 1 == (this.buffer[Math.floor(a / 8)] >>> 7 - a % 8 & 1)
            },
            put: function(a, c) {
                for (var d = 0; d < c; d++)
                    this.putBit(1 == (a >>> c - d - 1 & 1))
            },
            getLengthInBits: function() {
                return this.length
            },
            putBit: function(a) {
                var c = Math.floor(this.length / 8);
                this.buffer.length <= c && this.buffer.push(0);
                a && (this.buffer[c] |= 128 >>> this.length % 8);
                this.length++
            }
        };
        "string" === typeof h && (h = {
            text: h
        });
        h = r.extend({}, {
            render: "canvas",
            width: 256,
            height: 256,
            typeNumber: -1,
            correctLevel: 2,
            background: "#ffffff",
            foreground: "#000000"
        }, h);
        return this.each(function() {
            var a;
            if ("canvas" == h.render) {
                a = new o(h.typeNumber,h.correctLevel);
                a.addData(h.text);
                a.make();
                var c = document.createElement("canvas");
                c.width = h.width;
                c.height = h.height;
                for (var d = c.getContext("2d"), b = h.width / a.getModuleCount(), e = h.height / a.getModuleCount(), f = 0; f < a.getModuleCount(); f++)
                    for (var i = 0; i < a.getModuleCount(); i++) {
                        d.fillStyle = a.isDark(f, i) ? h.foreground : h.background;
                        var g = Math.ceil((i + 1) * b) - Math.floor(i * b)
                          , j = Math.ceil((f + 1) * b) - Math.floor(f * b);
                        d.fillRect(Math.round(i * b), Math.round(f * e), g, j)
                    }
            } else {
                a = new o(h.typeNumber,h.correctLevel);
                a.addData(h.text);
                a.make();
                c = r("<table></table>").css("width", h.width + "px").css("height", h.height + "px").css("border", "0px").css("border-collapse", "collapse").css("background-color", h.background);
                d = h.width / a.getModuleCount();
                b = h.height / a.getModuleCount();
                for (e = 0; e < a.getModuleCount(); e++) {
                    f = r("<tr></tr>").css("height", b + "px").appendTo(c);
                    for (i = 0; i < a.getModuleCount(); i++)
                        r("<td></td>").css("width", d + "px").css("background-color", a.isDark(e, i) ? h.foreground : h.background).appendTo(f)
                }
            }
            a = c;
            jQuery(a).appendTo(this)
        })
    }
}
)(jQuery);

/*!
 * html2canvas 1.4.1 <https://html2canvas.hertzen.com>
 * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>
 * Released under MIT License
 */
!function(A, e) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (A = "undefined" != typeof globalThis ? globalThis : A || self).html2canvas = e()
}(this, function() {
    "use strict";
    /*! *****************************************************************************
        Copyright (c) Microsoft Corporation.

        Permission to use, copy, modify, and/or distribute this software for any
        purpose with or without fee is hereby granted.

        THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
        REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
        AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
        INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
        LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
        OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
        PERFORMANCE OF THIS SOFTWARE.
        ***************************************************************************** */
    var r = function(A, e) {
        return (r = Object.setPrototypeOf || {
            __proto__: []
        }instanceof Array && function(A, e) {
            A.__proto__ = e
        }
        || function(A, e) {
            for (var t in e)
                Object.prototype.hasOwnProperty.call(e, t) && (A[t] = e[t])
        }
        )(A, e)
    };
    function A(A, e) {
        if ("function" != typeof e && null !== e)
            throw new TypeError("Class extends value " + String(e) + " is not a constructor or null");
        function t() {
            this.constructor = A
        }
        r(A, e),
        A.prototype = null === e ? Object.create(e) : (t.prototype = e.prototype,
        new t)
    }
    var h = function() {
        return (h = Object.assign || function(A) {
            for (var e, t = 1, r = arguments.length; t < r; t++)
                for (var B in e = arguments[t])
                    Object.prototype.hasOwnProperty.call(e, B) && (A[B] = e[B]);
            return A
        }
        ).apply(this, arguments)
    };
    function a(A, s, o, i) {
        return new (o = o || Promise)(function(t, e) {
            function r(A) {
                try {
                    n(i.next(A))
                } catch (A) {
                    e(A)
                }
            }
            function B(A) {
                try {
                    n(i.throw(A))
                } catch (A) {
                    e(A)
                }
            }
            function n(A) {
                var e;
                A.done ? t(A.value) : ((e = A.value)instanceof o ? e : new o(function(A) {
                    A(e)
                }
                )).then(r, B)
            }
            n((i = i.apply(A, s || [])).next())
        }
        )
    }
    function H(t, r) {
        var B, n, s, o = {
            label: 0,
            sent: function() {
                if (1 & s[0])
                    throw s[1];
                return s[1]
            },
            trys: [],
            ops: []
        }, A = {
            next: e(0),
            throw: e(1),
            return: e(2)
        };
        return "function" == typeof Symbol && (A[Symbol.iterator] = function() {
            return this
        }
        ),
        A;
        function e(e) {
            return function(A) {
                return function(e) {
                    if (B)
                        throw new TypeError("Generator is already executing.");
                    for (; o; )
                        try {
                            if (B = 1,
                            n && (s = 2 & e[0] ? n.return : e[0] ? n.throw || ((s = n.return) && s.call(n),
                            0) : n.next) && !(s = s.call(n, e[1])).done)
                                return s;
                            switch (n = 0,
                            (e = s ? [2 & e[0], s.value] : e)[0]) {
                            case 0:
                            case 1:
                                s = e;
                                break;
                            case 4:
                                return o.label++,
                                {
                                    value: e[1],
                                    done: !1
                                };
                            case 5:
                                o.label++,
                                n = e[1],
                                e = [0];
                                continue;
                            case 7:
                                e = o.ops.pop(),
                                o.trys.pop();
                                continue;
                            default:
                                if (!(s = 0 < (s = o.trys).length && s[s.length - 1]) && (6 === e[0] || 2 === e[0])) {
                                    o = 0;
                                    continue
                                }
                                if (3 === e[0] && (!s || e[1] > s[0] && e[1] < s[3])) {
                                    o.label = e[1];
                                    break
                                }
                                if (6 === e[0] && o.label < s[1]) {
                                    o.label = s[1],
                                    s = e;
                                    break
                                }
                                if (s && o.label < s[2]) {
                                    o.label = s[2],
                                    o.ops.push(e);
                                    break
                                }
                                s[2] && o.ops.pop(),
                                o.trys.pop();
                                continue
                            }
                            e = r.call(t, o)
                        } catch (A) {
                            e = [6, A],
                            n = 0
                        } finally {
                            B = s = 0
                        }
                    if (5 & e[0])
                        throw e[1];
                    return {
                        value: e[0] ? e[1] : void 0,
                        done: !0
                    }
                }([e, A])
            }
        }
    }
    function t(A, e, t) {
        if (t || 2 === arguments.length)
            for (var r, B = 0, n = e.length; B < n; B++)
                !r && B in e || ((r = r || Array.prototype.slice.call(e, 0, B))[B] = e[B]);
        return A.concat(r || e)
    }
    var d = (B.prototype.add = function(A, e, t, r) {
        return new B(this.left + A,this.top + e,this.width + t,this.height + r)
    }
    ,
    B.fromClientRect = function(A, e) {
        return new B(e.left + A.windowBounds.left,e.top + A.windowBounds.top,e.width,e.height)
    }
    ,
    B.fromDOMRectList = function(A, e) {
        e = Array.from(e).find(function(A) {
            return 0 !== A.width
        });
        return e ? new B(e.left + A.windowBounds.left,e.top + A.windowBounds.top,e.width,e.height) : B.EMPTY
    }
    ,
    B.EMPTY = new B(0,0,0,0),
    B);
    function B(A, e, t, r) {
        this.left = A,
        this.top = e,
        this.width = t,
        this.height = r
    }
    for (var f = function(A, e) {
        return d.fromClientRect(A, e.getBoundingClientRect())
    }, Q = function(A) {
        for (var e = [], t = 0, r = A.length; t < r; ) {
            var B, n = A.charCodeAt(t++);
            55296 <= n && n <= 56319 && t < r ? 56320 == (64512 & (B = A.charCodeAt(t++))) ? e.push(((1023 & n) << 10) + (1023 & B) + 65536) : (e.push(n),
            t--) : e.push(n)
        }
        return e
    }, g = function() {
        for (var A = [], e = 0; e < arguments.length; e++)
            A[e] = arguments[e];
        if (String.fromCodePoint)
            return String.fromCodePoint.apply(String, A);
        var t = A.length;
        if (!t)
            return "";
        for (var r = [], B = -1, n = ""; ++B < t; ) {
            var s = A[B];
            s <= 65535 ? r.push(s) : (s -= 65536,
            r.push(55296 + (s >> 10), s % 1024 + 56320)),
            (B + 1 === t || 16384 < r.length) && (n += String.fromCharCode.apply(String, r),
            r.length = 0)
        }
        return n
    }, e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", n = "undefined" == typeof Uint8Array ? [] : new Uint8Array(256), s = 0; s < e.length; s++)
        n[e.charCodeAt(s)] = s;
    for (var o = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", c = "undefined" == typeof Uint8Array ? [] : new Uint8Array(256), i = 0; i < o.length; i++)
        c[o.charCodeAt(i)] = i;
    function w(A, e, t) {
        return A.slice ? A.slice(e, t) : new Uint16Array(Array.prototype.slice.call(A, e, t))
    }
    var U = (l.prototype.get = function(A) {
        var e;
        if (0 <= A) {
            if (A < 55296 || 56319 < A && A <= 65535)
                return e = this.index[A >> 5],
                this.data[e = (e << 2) + (31 & A)];
            if (A <= 65535)
                return e = this.index[2048 + (A - 55296 >> 5)],
                this.data[e = (e << 2) + (31 & A)];
            if (A < this.highStart)
                return e = this.index[e = 2080 + (A >> 11)],
                e = this.index[e += A >> 5 & 63],
                this.data[e = (e << 2) + (31 & A)];
            if (A <= 1114111)
                return this.data[this.highValueIndex]
        }
        return this.errorValue
    }
    ,
    l);
    function l(A, e, t, r, B, n) {
        this.initialValue = A,
        this.errorValue = e,
        this.highStart = t,
        this.highValueIndex = r,
        this.index = B,
        this.data = n
    }
    for (var C = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", u = "undefined" == typeof Uint8Array ? [] : new Uint8Array(256), F = 0; F < C.length; F++)
        u[C.charCodeAt(F)] = F;
    function p(A, e, t, r) {
        var B = r[t];
        if (Array.isArray(A) ? -1 !== A.indexOf(B) : A === B)
            for (var n = t; n <= r.length; ) {
                if ((o = r[++n]) === e)
                    return 1;
                if (o !== D)
                    break
            }
        if (B === D)
            for (n = t; 0 < n; ) {
                var s = r[--n];
                if (Array.isArray(A) ? -1 !== A.indexOf(s) : A === s)
                    for (var o, i = t; i <= r.length; ) {
                        if ((o = r[++i]) === e)
                            return 1;
                        if (o !== D)
                            break
                    }
                if (s !== D)
                    break
            }
    }
    function E(A, e) {
        for (var t = A; 0 <= t; ) {
            var r = e[t];
            if (r !== D)
                return r;
            t--
        }
        return 0
    }
    function I(t, A) {
        var e = (B = function(A, r) {
            void 0 === r && (r = "strict");
            var B = []
              , n = []
              , s = [];
            return A.forEach(function(A, e) {
                var t = rA.get(A);
                if (50 < t ? (s.push(!0),
                t -= 50) : s.push(!1),
                -1 !== ["normal", "auto", "loose"].indexOf(r) && -1 !== [8208, 8211, 12316, 12448].indexOf(A))
                    return n.push(e),
                    B.push(16);
                if (4 !== t && 11 !== t)
                    return n.push(e),
                    31 === t ? B.push("strict" === r ? O : q) : t === AA || 29 === t ? B.push(J) : 43 === t ? 131072 <= A && A <= 196605 || 196608 <= A && A <= 262141 ? B.push(q) : B.push(J) : void B.push(t);
                if (0 === e)
                    return n.push(e),
                    B.push(J);
                t = B[e - 1];
                return -1 === iA.indexOf(t) ? (n.push(n[e - 1]),
                B.push(t)) : (n.push(e),
                B.push(J))
            }),
            [n, B, s]
        }(t, (A = A || {
            lineBreak: "normal",
            wordBreak: "normal"
        }).lineBreak))[0]
          , r = B[1]
          , B = B[2];
        return [e, r = "break-all" === A.wordBreak || "break-word" === A.wordBreak ? r.map(function(A) {
            return -1 !== [R, J, AA].indexOf(A) ? q : A
        }) : r, "keep-all" === A.wordBreak ? B.map(function(A, e) {
            return A && 19968 <= t[e] && t[e] <= 40959
        }) : void 0]
    }
    var y, K, m, L, b, D = 10, v = 13, x = 15, M = 17, S = 18, T = 19, G = 20, O = 21, V = 22, k = 24, R = 25, N = 26, P = 27, X = 28, J = 30, Y = 32, W = 33, Z = 34, _ = 35, q = 37, j = 38, z = 39, $ = 40, AA = 42, eA = [9001, 65288], tA = "×", rA = (m = function(A) {
        var e, t, r, B, n = .75 * A.length, s = A.length, o = 0;
        "=" === A[A.length - 1] && (n--,
        "=" === A[A.length - 2] && n--);
        for (var n = new ("undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array && void 0 !== Uint8Array.prototype.slice ? ArrayBuffer : Array)(n), i = Array.isArray(n) ? n : new Uint8Array(n), Q = 0; Q < s; Q += 4)
            e = c[A.charCodeAt(Q)],
            t = c[A.charCodeAt(Q + 1)],
            r = c[A.charCodeAt(Q + 2)],
            B = c[A.charCodeAt(Q + 3)],
            i[o++] = e << 2 | t >> 4,
            i[o++] = (15 & t) << 4 | r >> 2,
            i[o++] = (3 & r) << 6 | 63 & B;
        return n
    }(y = "KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA=="),
    L = Array.isArray(m) ? function(A) {
        for (var e = A.length, t = [], r = 0; r < e; r += 4)
            t.push(A[r + 3] << 24 | A[r + 2] << 16 | A[r + 1] << 8 | A[r]);
        return t
    }(m) : new Uint32Array(m),
    b = Array.isArray(m) ? function(A) {
        for (var e = A.length, t = [], r = 0; r < e; r += 2)
            t.push(A[r + 1] << 8 | A[r]);
        return t
    }(m) : new Uint16Array(m),
    y = w(b, 12, L[4] / 2),
    K = 2 === L[5] ? w(b, (24 + L[4]) / 2) : (m = L,
    b = Math.ceil((24 + L[4]) / 4),
    m.slice ? m.slice(b, K) : new Uint32Array(Array.prototype.slice.call(m, b, K))),
    new U(L[0],L[1],L[2],L[3],y,K)), BA = [J, 36], nA = [1, 2, 3, 5], sA = [D, 8], oA = [P, N], iA = nA.concat(sA), QA = [j, z, $, Z, _], cA = [x, v], aA = (gA.prototype.slice = function() {
        return g.apply(void 0, this.codePoints.slice(this.start, this.end))
    }
    ,
    gA);
    function gA(A, e, t, r) {
        this.codePoints = A,
        this.required = "!" === e,
        this.start = t,
        this.end = r
    }
    function wA(A, e) {
        var t = Q(A)
          , r = (e = I(t, e))[0]
          , B = e[1]
          , n = e[2]
          , s = t.length
          , o = 0
          , i = 0;
        return {
            next: function() {
                if (s <= i)
                    return {
                        done: !0,
                        value: null
                    };
                for (var A = tA; i < s && (A = function(A, e, t, r, B) {
                    if (0 === t[r])
                        return tA;
                    var n = r - 1;
                    if (Array.isArray(B) && !0 === B[n])
                        return tA;
                    var s = n - 1
                      , o = 1 + n
                      , i = e[n]
                      , r = 0 <= s ? e[s] : 0
                      , B = e[o];
                    if (2 === i && 3 === B)
                        return tA;
                    if (-1 !== nA.indexOf(i))
                        return "!";
                    if (-1 !== nA.indexOf(B))
                        return tA;
                    if (-1 !== sA.indexOf(B))
                        return tA;
                    if (8 === E(n, e))
                        return "÷";
                    if (11 === rA.get(A[n]))
                        return tA;
                    if ((i === Y || i === W) && 11 === rA.get(A[o]))
                        return tA;
                    if (7 === i || 7 === B)
                        return tA;
                    if (9 === i)
                        return tA;
                    if (-1 === [D, v, x].indexOf(i) && 9 === B)
                        return tA;
                    if (-1 !== [M, S, T, k, X].indexOf(B))
                        return tA;
                    if (E(n, e) === V)
                        return tA;
                    if (p(23, V, n, e))
                        return tA;
                    if (p([M, S], O, n, e))
                        return tA;
                    if (p(12, 12, n, e))
                        return tA;
                    if (i === D)
                        return "÷";
                    if (23 === i || 23 === B)
                        return tA;
                    if (16 === B || 16 === i)
                        return "÷";
                    if (-1 !== [v, x, O].indexOf(B) || 14 === i)
                        return tA;
                    if (36 === r && -1 !== cA.indexOf(i))
                        return tA;
                    if (i === X && 36 === B)
                        return tA;
                    if (B === G)
                        return tA;
                    if (-1 !== BA.indexOf(B) && i === R || -1 !== BA.indexOf(i) && B === R)
                        return tA;
                    if (i === P && -1 !== [q, Y, W].indexOf(B) || -1 !== [q, Y, W].indexOf(i) && B === N)
                        return tA;
                    if (-1 !== BA.indexOf(i) && -1 !== oA.indexOf(B) || -1 !== oA.indexOf(i) && -1 !== BA.indexOf(B))
                        return tA;
                    if (-1 !== [P, N].indexOf(i) && (B === R || -1 !== [V, x].indexOf(B) && e[1 + o] === R) || -1 !== [V, x].indexOf(i) && B === R || i === R && -1 !== [R, X, k].indexOf(B))
                        return tA;
                    if (-1 !== [R, X, k, M, S].indexOf(B))
                        for (var Q = n; 0 <= Q; ) {
                            if ((c = e[Q]) === R)
                                return tA;
                            if (-1 === [X, k].indexOf(c))
                                break;
                            Q--
                        }
                    if (-1 !== [P, N].indexOf(B))
                        for (var c, Q = -1 !== [M, S].indexOf(i) ? s : n; 0 <= Q; ) {
                            if ((c = e[Q]) === R)
                                return tA;
                            if (-1 === [X, k].indexOf(c))
                                break;
                            Q--
                        }
                    if (j === i && -1 !== [j, z, Z, _].indexOf(B) || -1 !== [z, Z].indexOf(i) && -1 !== [z, $].indexOf(B) || -1 !== [$, _].indexOf(i) && B === $)
                        return tA;
                    if (-1 !== QA.indexOf(i) && -1 !== [G, N].indexOf(B) || -1 !== QA.indexOf(B) && i === P)
                        return tA;
                    if (-1 !== BA.indexOf(i) && -1 !== BA.indexOf(B))
                        return tA;
                    if (i === k && -1 !== BA.indexOf(B))
                        return tA;
                    if (-1 !== BA.concat(R).indexOf(i) && B === V && -1 === eA.indexOf(A[o]) || -1 !== BA.concat(R).indexOf(B) && i === S)
                        return tA;
                    if (41 === i && 41 === B) {
                        for (var a = t[n], g = 1; 0 < a && 41 === e[--a]; )
                            g++;
                        if (g % 2 != 0)
                            return tA
                    }
                    return i === Y && B === W ? tA : "÷"
                }(t, B, r, ++i, n)) === tA; )
                    ;
                if (A === tA && i !== s)
                    return {
                        done: !0,
                        value: null
                    };
                var e = new aA(t,A,o,i);
                return o = i,
                {
                    value: e,
                    done: !1
                }
            }
        }
    }
    function UA(A) {
        return 48 <= A && A <= 57
    }
    function lA(A) {
        return UA(A) || 65 <= A && A <= 70 || 97 <= A && A <= 102
    }
    function CA(A) {
        return 10 === A || 9 === A || 32 === A
    }
    function uA(A) {
        return 97 <= (t = e = A) && t <= 122 || 65 <= (e = e) && e <= 90 || 128 <= A || 95 === A;
        var e, t
    }
    function FA(A) {
        return uA(A) || UA(A) || 45 === A
    }
    function hA(A, e) {
        return 92 === A && 10 !== e
    }
    function dA(A, e, t) {
        return 45 === A ? uA(e) || hA(e, t) : !!uA(A) || 92 === A && 10 !== e
    }
    function fA(A, e, t) {
        return 43 === A || 45 === A ? !!UA(e) || 46 === e && UA(t) : UA(46 === A ? e : A)
    }
    var HA = {
        type: 2
    }
      , pA = {
        type: 3
    }
      , EA = {
        type: 4
    }
      , IA = {
        type: 13
    }
      , yA = {
        type: 8
    }
      , KA = {
        type: 21
    }
      , mA = {
        type: 9
    }
      , LA = {
        type: 10
    }
      , bA = {
        type: 11
    }
      , DA = {
        type: 12
    }
      , vA = {
        type: 14
    }
      , xA = {
        type: 23
    }
      , MA = {
        type: 1
    }
      , SA = {
        type: 25
    }
      , TA = {
        type: 24
    }
      , GA = {
        type: 26
    }
      , OA = {
        type: 27
    }
      , VA = {
        type: 28
    }
      , kA = {
        type: 29
    }
      , RA = {
        type: 31
    }
      , NA = {
        type: 32
    }
      , PA = (XA.prototype.write = function(A) {
        this._value = this._value.concat(Q(A))
    }
    ,
    XA.prototype.read = function() {
        for (var A = [], e = this.consumeToken(); e !== NA; )
            A.push(e),
            e = this.consumeToken();
        return A
    }
    ,
    XA.prototype.consumeToken = function() {
        var A = this.consumeCodePoint();
        switch (A) {
        case 34:
            return this.consumeStringToken(34);
        case 35:
            var e = this.peekCodePoint(0)
              , t = this.peekCodePoint(1)
              , r = this.peekCodePoint(2);
            if (FA(e) || hA(t, r)) {
                var B = dA(e, t, r) ? 2 : 1;
                return {
                    type: 5,
                    value: this.consumeName(),
                    flags: B
                }
            }
            break;
        case 36:
            if (61 === this.peekCodePoint(0))
                return this.consumeCodePoint(),
                IA;
            break;
        case 39:
            return this.consumeStringToken(39);
        case 40:
            return HA;
        case 41:
            return pA;
        case 42:
            if (61 === this.peekCodePoint(0))
                return this.consumeCodePoint(),
                vA;
            break;
        case 43:
            if (fA(A, this.peekCodePoint(0), this.peekCodePoint(1)))
                return this.reconsumeCodePoint(A),
                this.consumeNumericToken();
            break;
        case 44:
            return EA;
        case 45:
            var r = A
              , B = this.peekCodePoint(0)
              , n = this.peekCodePoint(1);
            if (fA(r, B, n))
                return this.reconsumeCodePoint(A),
                this.consumeNumericToken();
            if (dA(r, B, n))
                return this.reconsumeCodePoint(A),
                this.consumeIdentLikeToken();
            if (45 === B && 62 === n)
                return this.consumeCodePoint(),
                this.consumeCodePoint(),
                TA;
            break;
        case 46:
            if (fA(A, this.peekCodePoint(0), this.peekCodePoint(1)))
                return this.reconsumeCodePoint(A),
                this.consumeNumericToken();
            break;
        case 47:
            if (42 === this.peekCodePoint(0))
                for (this.consumeCodePoint(); ; ) {
                    var s = this.consumeCodePoint();
                    if (42 === s && 47 === (s = this.consumeCodePoint()))
                        return this.consumeToken();
                    if (-1 === s)
                        return this.consumeToken()
                }
            break;
        case 58:
            return GA;
        case 59:
            return OA;
        case 60:
            if (33 === this.peekCodePoint(0) && 45 === this.peekCodePoint(1) && 45 === this.peekCodePoint(2))
                return this.consumeCodePoint(),
                this.consumeCodePoint(),
                SA;
            break;
        case 64:
            var n = this.peekCodePoint(0)
              , o = this.peekCodePoint(1)
              , i = this.peekCodePoint(2);
            if (dA(n, o, i))
                return {
                    type: 7,
                    value: this.consumeName()
                };
            break;
        case 91:
            return VA;
        case 92:
            if (hA(A, this.peekCodePoint(0)))
                return this.reconsumeCodePoint(A),
                this.consumeIdentLikeToken();
            break;
        case 93:
            return kA;
        case 61:
            if (61 === this.peekCodePoint(0))
                return this.consumeCodePoint(),
                yA;
            break;
        case 123:
            return bA;
        case 125:
            return DA;
        case 117:
        case 85:
            o = this.peekCodePoint(0),
            i = this.peekCodePoint(1);
            return 43 !== o || !lA(i) && 63 !== i || (this.consumeCodePoint(),
            this.consumeUnicodeRangeToken()),
            this.reconsumeCodePoint(A),
            this.consumeIdentLikeToken();
        case 124:
            if (61 === this.peekCodePoint(0))
                return this.consumeCodePoint(),
                mA;
            if (124 === this.peekCodePoint(0))
                return this.consumeCodePoint(),
                KA;
            break;
        case 126:
            if (61 === this.peekCodePoint(0))
                return this.consumeCodePoint(),
                LA;
            break;
        case -1:
            return NA
        }
        return CA(A) ? (this.consumeWhiteSpace(),
        RA) : UA(A) ? (this.reconsumeCodePoint(A),
        this.consumeNumericToken()) : uA(A) ? (this.reconsumeCodePoint(A),
        this.consumeIdentLikeToken()) : {
            type: 6,
            value: g(A)
        }
    }
    ,
    XA.prototype.consumeCodePoint = function() {
        var A = this._value.shift();
        return void 0 === A ? -1 : A
    }
    ,
    XA.prototype.reconsumeCodePoint = function(A) {
        this._value.unshift(A)
    }
    ,
    XA.prototype.peekCodePoint = function(A) {
        return A >= this._value.length ? -1 : this._value[A]
    }
    ,
    XA.prototype.consumeUnicodeRangeToken = function() {
        for (var A = [], e = this.consumeCodePoint(); lA(e) && A.length < 6; )
            A.push(e),
            e = this.consumeCodePoint();
        for (var t = !1; 63 === e && A.length < 6; )
            A.push(e),
            e = this.consumeCodePoint(),
            t = !0;
        if (t)
            return {
                type: 30,
                start: parseInt(g.apply(void 0, A.map(function(A) {
                    return 63 === A ? 48 : A
                })), 16),
                end: parseInt(g.apply(void 0, A.map(function(A) {
                    return 63 === A ? 70 : A
                })), 16)
            };
        var r = parseInt(g.apply(void 0, A), 16);
        if (45 === this.peekCodePoint(0) && lA(this.peekCodePoint(1))) {
            this.consumeCodePoint();
            for (var e = this.consumeCodePoint(), B = []; lA(e) && B.length < 6; )
                B.push(e),
                e = this.consumeCodePoint();
            return {
                type: 30,
                start: r,
                end: parseInt(g.apply(void 0, B), 16)
            }
        }
        return {
            type: 30,
            start: r,
            end: r
        }
    }
    ,
    XA.prototype.consumeIdentLikeToken = function() {
        var A = this.consumeName();
        return "url" === A.toLowerCase() && 40 === this.peekCodePoint(0) ? (this.consumeCodePoint(),
        this.consumeUrlToken()) : 40 === this.peekCodePoint(0) ? (this.consumeCodePoint(),
        {
            type: 19,
            value: A
        }) : {
            type: 20,
            value: A
        }
    }
    ,
    XA.prototype.consumeUrlToken = function() {
        var A = [];
        if (this.consumeWhiteSpace(),
        -1 === this.peekCodePoint(0))
            return {
                type: 22,
                value: ""
            };
        var e, t = this.peekCodePoint(0);
        if (39 === t || 34 === t) {
            t = this.consumeStringToken(this.consumeCodePoint());
            return 0 === t.type && (this.consumeWhiteSpace(),
            -1 === this.peekCodePoint(0) || 41 === this.peekCodePoint(0)) ? (this.consumeCodePoint(),
            {
                type: 22,
                value: t.value
            }) : (this.consumeBadUrlRemnants(),
            xA)
        }
        for (; ; ) {
            var r = this.consumeCodePoint();
            if (-1 === r || 41 === r)
                return {
                    type: 22,
                    value: g.apply(void 0, A)
                };
            if (CA(r))
                return this.consumeWhiteSpace(),
                -1 === this.peekCodePoint(0) || 41 === this.peekCodePoint(0) ? (this.consumeCodePoint(),
                {
                    type: 22,
                    value: g.apply(void 0, A)
                }) : (this.consumeBadUrlRemnants(),
                xA);
            if (34 === r || 39 === r || 40 === r || (0 <= (e = r) && e <= 8 || 11 === e || 14 <= e && e <= 31 || 127 === e))
                return this.consumeBadUrlRemnants(),
                xA;
            if (92 === r) {
                if (!hA(r, this.peekCodePoint(0)))
                    return this.consumeBadUrlRemnants(),
                    xA;
                A.push(this.consumeEscapedCodePoint())
            } else
                A.push(r)
        }
    }
    ,
    XA.prototype.consumeWhiteSpace = function() {
        for (; CA(this.peekCodePoint(0)); )
            this.consumeCodePoint()
    }
    ,
    XA.prototype.consumeBadUrlRemnants = function() {
        for (; ; ) {
            var A = this.consumeCodePoint();
            if (41 === A || -1 === A)
                return;
            hA(A, this.peekCodePoint(0)) && this.consumeEscapedCodePoint()
        }
    }
    ,
    XA.prototype.consumeStringSlice = function(A) {
        for (var e = ""; 0 < A; ) {
            var t = Math.min(5e4, A);
            e += g.apply(void 0, this._value.splice(0, t)),
            A -= t
        }
        return this._value.shift(),
        e
    }
    ,
    XA.prototype.consumeStringToken = function(A) {
        for (var e = "", t = 0; ; ) {
            var r, B = this._value[t];
            if (-1 === B || void 0 === B || B === A)
                return {
                    type: 0,
                    value: e += this.consumeStringSlice(t)
                };
            if (10 === B)
                return this._value.splice(0, t),
                MA;
            92 !== B || -1 !== (r = this._value[t + 1]) && void 0 !== r && (10 === r ? (e += this.consumeStringSlice(t),
            t = -1,
            this._value.shift()) : hA(B, r) && (e += this.consumeStringSlice(t),
            e += g(this.consumeEscapedCodePoint()),
            t = -1)),
            t++
        }
    }
    ,
    XA.prototype.consumeNumber = function() {
        var A = []
          , e = 4;
        for (43 !== (t = this.peekCodePoint(0)) && 45 !== t || A.push(this.consumeCodePoint()); UA(this.peekCodePoint(0)); )
            A.push(this.consumeCodePoint());
        var t = this.peekCodePoint(0)
          , r = this.peekCodePoint(1);
        if (46 === t && UA(r))
            for (A.push(this.consumeCodePoint(), this.consumeCodePoint()),
            e = 8; UA(this.peekCodePoint(0)); )
                A.push(this.consumeCodePoint());
        t = this.peekCodePoint(0);
        var r = this.peekCodePoint(1)
          , B = this.peekCodePoint(2);
        if ((69 === t || 101 === t) && ((43 === r || 45 === r) && UA(B) || UA(r)))
            for (A.push(this.consumeCodePoint(), this.consumeCodePoint()),
            e = 8; UA(this.peekCodePoint(0)); )
                A.push(this.consumeCodePoint());
        return [function(A) {
            var e = 0
              , t = 1;
            43 !== A[e] && 45 !== A[e] || (45 === A[e] && (t = -1),
            e++);
            for (var r = []; UA(A[e]); )
                r.push(A[e++]);
            var B = r.length ? parseInt(g.apply(void 0, r), 10) : 0;
            46 === A[e] && e++;
            for (var n = []; UA(A[e]); )
                n.push(A[e++]);
            var s = n.length
              , o = s ? parseInt(g.apply(void 0, n), 10) : 0;
            69 !== A[e] && 101 !== A[e] || e++;
            var i = 1;
            43 !== A[e] && 45 !== A[e] || (45 === A[e] && (i = -1),
            e++);
            for (var Q = []; UA(A[e]); )
                Q.push(A[e++]);
            var c = Q.length ? parseInt(g.apply(void 0, Q), 10) : 0;
            return t * (B + o * Math.pow(10, -s)) * Math.pow(10, i * c)
        }(A), e]
    }
    ,
    XA.prototype.consumeNumericToken = function() {
        var A = this.consumeNumber()
          , e = A[0]
          , t = A[1]
          , r = this.peekCodePoint(0)
          , B = this.peekCodePoint(1)
          , A = this.peekCodePoint(2);
        return dA(r, B, A) ? {
            type: 15,
            number: e,
            flags: t,
            unit: this.consumeName()
        } : 37 === r ? (this.consumeCodePoint(),
        {
            type: 16,
            number: e,
            flags: t
        }) : {
            type: 17,
            number: e,
            flags: t
        }
    }
    ,
    XA.prototype.consumeEscapedCodePoint = function() {
        var A, e = this.consumeCodePoint();
        if (lA(e)) {
            for (var t = g(e); lA(this.peekCodePoint(0)) && t.length < 6; )
                t += g(this.consumeCodePoint());
            CA(this.peekCodePoint(0)) && this.consumeCodePoint();
            var r = parseInt(t, 16);
            return 0 === r || 55296 <= (A = r) && A <= 57343 || 1114111 < r ? 65533 : r
        }
        return -1 === e ? 65533 : e
    }
    ,
    XA.prototype.consumeName = function() {
        for (var A = ""; ; ) {
            var e = this.consumeCodePoint();
            if (FA(e))
                A += g(e);
            else {
                if (!hA(e, this.peekCodePoint(0)))
                    return this.reconsumeCodePoint(e),
                    A;
                A += g(this.consumeEscapedCodePoint())
            }
        }
    }
    ,
    XA);
    function XA() {
        this._value = []
    }
    var JA = (YA.create = function(A) {
        var e = new PA;
        return e.write(A),
        new YA(e.read())
    }
    ,
    YA.parseValue = function(A) {
        return YA.create(A).parseComponentValue()
    }
    ,
    YA.parseValues = function(A) {
        return YA.create(A).parseComponentValues()
    }
    ,
    YA.prototype.parseComponentValue = function() {
        for (var A = this.consumeToken(); 31 === A.type; )
            A = this.consumeToken();
        if (32 === A.type)
            throw new SyntaxError("Error parsing CSS component value, unexpected EOF");
        this.reconsumeToken(A);
        for (var e = this.consumeComponentValue(); 31 === (A = this.consumeToken()).type; )
            ;
        if (32 === A.type)
            return e;
        throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")
    }
    ,
    YA.prototype.parseComponentValues = function() {
        for (var A = []; ; ) {
            var e = this.consumeComponentValue();
            if (32 === e.type)
                return A;
            A.push(e),
            A.push()
        }
    }
    ,
    YA.prototype.consumeComponentValue = function() {
        var A = this.consumeToken();
        switch (A.type) {
        case 11:
        case 28:
        case 2:
            return this.consumeSimpleBlock(A.type);
        case 19:
            return this.consumeFunction(A)
        }
        return A
    }
    ,
    YA.prototype.consumeSimpleBlock = function(A) {
        for (var e = {
            type: A,
            values: []
        }, t = this.consumeToken(); ; ) {
            if (32 === t.type || ce(t, A))
                return e;
            this.reconsumeToken(t),
            e.values.push(this.consumeComponentValue()),
            t = this.consumeToken()
        }
    }
    ,
    YA.prototype.consumeFunction = function(A) {
        for (var e = {
            name: A.value,
            values: [],
            type: 18
        }; ; ) {
            var t = this.consumeToken();
            if (32 === t.type || 3 === t.type)
                return e;
            this.reconsumeToken(t),
            e.values.push(this.consumeComponentValue())
        }
    }
    ,
    YA.prototype.consumeToken = function() {
        var A = this._tokens.shift();
        return void 0 === A ? NA : A
    }
    ,
    YA.prototype.reconsumeToken = function(A) {
        this._tokens.unshift(A)
    }
    ,
    YA);
    function YA(A) {
        this._tokens = A
    }
    function WA(A) {
        return 15 === A.type
    }
    function ZA(A) {
        return 17 === A.type
    }
    function _A(A) {
        return 20 === A.type
    }
    function qA(A) {
        return 0 === A.type
    }
    function jA(A, e) {
        return _A(A) && A.value === e
    }
    function zA(A) {
        return 31 !== A.type
    }
    function $A(A) {
        return 31 !== A.type && 4 !== A.type
    }
    function Ae(A) {
        var e = []
          , t = [];
        return A.forEach(function(A) {
            if (4 === A.type) {
                if (0 === t.length)
                    throw new Error("Error parsing function args, zero tokens for arg");
                return e.push(t),
                void (t = [])
            }
            31 !== A.type && t.push(A)
        }),
        t.length && e.push(t),
        e
    }
    function ee(A) {
        return 17 === A.type || 15 === A.type
    }
    function te(A) {
        return 16 === A.type || ee(A)
    }
    function re(A) {
        return 1 < A.length ? [A[0], A[1]] : [A[0]]
    }
    function Be(A, e, t) {
        var r = A[0]
          , A = A[1];
        return [Ue(r, e), Ue(void 0 !== A ? A : r, t)]
    }
    function ne(A) {
        return 15 === A.type && ("deg" === A.unit || "grad" === A.unit || "rad" === A.unit || "turn" === A.unit)
    }
    function se(A) {
        switch (A.filter(_A).map(function(A) {
            return A.value
        }).join(" ")) {
        case "to bottom right":
        case "to right bottom":
        case "left top":
        case "top left":
            return [ae, ae];
        case "to top":
        case "bottom":
            return Ce(0);
        case "to bottom left":
        case "to left bottom":
        case "right top":
        case "top right":
            return [ae, we];
        case "to right":
        case "left":
            return Ce(90);
        case "to top left":
        case "to left top":
        case "right bottom":
        case "bottom right":
            return [we, we];
        case "to bottom":
        case "top":
            return Ce(180);
        case "to top right":
        case "to right top":
        case "left bottom":
        case "bottom left":
            return [we, ae];
        case "to left":
        case "right":
            return Ce(270)
        }
        return 0
    }
    function oe(A) {
        return 0 == (255 & A)
    }
    function ie(A) {
        var e = 255 & A
          , t = 255 & A >> 8
          , r = 255 & A >> 16
          , A = 255 & A >> 24;
        return e < 255 ? "rgba(" + A + "," + r + "," + t + "," + e / 255 + ")" : "rgb(" + A + "," + r + "," + t + ")"
    }
    function Qe(A, e) {
        if (17 === A.type)
            return A.number;
        if (16 !== A.type)
            return 0;
        var t = 3 === e ? 1 : 255;
        return 3 === e ? A.number / 100 * t : Math.round(A.number / 100 * t)
    }
    var ce = function(A, e) {
        return 11 === e && 12 === A.type || (28 === e && 29 === A.type || 2 === e && 3 === A.type)
    }
      , ae = {
        type: 17,
        number: 0,
        flags: 4
    }
      , ge = {
        type: 16,
        number: 50,
        flags: 4
    }
      , we = {
        type: 16,
        number: 100,
        flags: 4
    }
      , Ue = function(A, e) {
        if (16 === A.type)
            return A.number / 100 * e;
        if (WA(A))
            switch (A.unit) {
            case "rem":
            case "em":
                return 16 * A.number;
            default:
                return A.number
            }
        return A.number
    }
      , le = function(A, e) {
        if (15 === e.type)
            switch (e.unit) {
            case "deg":
                return Math.PI * e.number / 180;
            case "grad":
                return Math.PI / 200 * e.number;
            case "rad":
                return e.number;
            case "turn":
                return 2 * Math.PI * e.number
            }
        throw new Error("Unsupported angle type")
    }
      , Ce = function(A) {
        return Math.PI * A / 180
    }
      , ue = function(A, e) {
        if (18 === e.type) {
            var t = me[e.name];
            if (void 0 === t)
                throw new Error('Attempting to parse an unsupported color function "' + e.name + '"');
            return t(A, e.values)
        }
        if (5 === e.type) {
            if (3 === e.value.length) {
                var r = e.value.substring(0, 1)
                  , B = e.value.substring(1, 2)
                  , n = e.value.substring(2, 3);
                return Fe(parseInt(r + r, 16), parseInt(B + B, 16), parseInt(n + n, 16), 1)
            }
            if (4 === e.value.length) {
                var r = e.value.substring(0, 1)
                  , B = e.value.substring(1, 2)
                  , n = e.value.substring(2, 3)
                  , s = e.value.substring(3, 4);
                return Fe(parseInt(r + r, 16), parseInt(B + B, 16), parseInt(n + n, 16), parseInt(s + s, 16) / 255)
            }
            if (6 === e.value.length) {
                r = e.value.substring(0, 2),
                B = e.value.substring(2, 4),
                n = e.value.substring(4, 6);
                return Fe(parseInt(r, 16), parseInt(B, 16), parseInt(n, 16), 1)
            }
            if (8 === e.value.length) {
                r = e.value.substring(0, 2),
                B = e.value.substring(2, 4),
                n = e.value.substring(4, 6),
                s = e.value.substring(6, 8);
                return Fe(parseInt(r, 16), parseInt(B, 16), parseInt(n, 16), parseInt(s, 16) / 255)
            }
        }
        if (20 === e.type) {
            e = Le[e.value.toUpperCase()];
            if (void 0 !== e)
                return e
        }
        return Le.TRANSPARENT
    }
      , Fe = function(A, e, t, r) {
        return (A << 24 | e << 16 | t << 8 | Math.round(255 * r) << 0) >>> 0
    }
      , he = function(A, e) {
        e = e.filter($A);
        if (3 === e.length) {
            var t = e.map(Qe)
              , r = t[0]
              , B = t[1]
              , t = t[2];
            return Fe(r, B, t, 1)
        }
        if (4 !== e.length)
            return 0;
        e = e.map(Qe),
        r = e[0],
        B = e[1],
        t = e[2],
        e = e[3];
        return Fe(r, B, t, e)
    };
    function de(A, e, t) {
        return t < 0 && (t += 1),
        1 <= t && --t,
        t < 1 / 6 ? (e - A) * t * 6 + A : t < .5 ? e : t < 2 / 3 ? 6 * (e - A) * (2 / 3 - t) + A : A
    }
    function fe(A, e) {
        return ue(A, JA.create(e).parseComponentValue())
    }
    function He(A, e) {
        return A = ue(A, e[0]),
        (e = e[1]) && te(e) ? {
            color: A,
            stop: e
        } : {
            color: A,
            stop: null
        }
    }
    function pe(A, t) {
        var e = A[0]
          , r = A[A.length - 1];
        null === e.stop && (e.stop = ae),
        null === r.stop && (r.stop = we);
        for (var B = [], n = 0, s = 0; s < A.length; s++) {
            var o = A[s].stop;
            null !== o ? (n < (o = Ue(o, t)) ? B.push(o) : B.push(n),
            n = o) : B.push(null)
        }
        for (var i = null, s = 0; s < B.length; s++) {
            var Q = B[s];
            if (null === Q)
                null === i && (i = s);
            else if (null !== i) {
                for (var c = s - i, a = (Q - B[i - 1]) / (1 + c), g = 1; g <= c; g++)
                    B[i + g - 1] = a * g;
                i = null
            }
        }
        return A.map(function(A, e) {
            return {
                color: A.color,
                stop: Math.max(Math.min(1, B[e] / t), 0)
            }
        })
    }
    function Ee(A, e, t) {
        var r = "number" == typeof A ? A : (s = e / 2,
        r = (n = t) / 2,
        s = Ue((B = A)[0], e) - s,
        n = r - Ue(B[1], n),
        (Math.atan2(n, s) + 2 * Math.PI) % (2 * Math.PI))
          , B = Math.abs(e * Math.sin(r)) + Math.abs(t * Math.cos(r))
          , n = e / 2
          , s = t / 2
          , e = B / 2
          , t = Math.sin(r - Math.PI / 2) * e
          , e = Math.cos(r - Math.PI / 2) * e;
        return [B, n - e, n + e, s - t, s + t]
    }
    function Ie(A, e) {
        return Math.sqrt(A * A + e * e)
    }
    function ye(A, e, B, n, s) {
        return [[0, 0], [0, e], [A, 0], [A, e]].reduce(function(A, e) {
            var t = e[0]
              , r = e[1]
              , r = Ie(B - t, n - r);
            return (s ? r < A.optimumDistance : r > A.optimumDistance) ? {
                optimumCorner: e,
                optimumDistance: r
            } : A
        }, {
            optimumDistance: s ? 1 / 0 : -1 / 0,
            optimumCorner: null
        }).optimumCorner
    }
    var Ke = function(A, e) {
        var t = e.filter($A)
          , r = t[0]
          , B = t[1]
          , n = t[2]
          , e = t[3]
          , t = (17 === r.type ? Ce(r.number) : le(A, r)) / (2 * Math.PI)
          , A = te(B) ? B.number / 100 : 0
          , r = te(n) ? n.number / 100 : 0
          , B = void 0 !== e && te(e) ? Ue(e, 1) : 1;
        if (0 == A)
            return Fe(255 * r, 255 * r, 255 * r, 1);
        n = r <= .5 ? r * (1 + A) : r + A - r * A,
        e = 2 * r - n,
        A = de(e, n, t + 1 / 3),
        r = de(e, n, t),
        t = de(e, n, t - 1 / 3);
        return Fe(255 * A, 255 * r, 255 * t, B)
    }
      , me = {
        hsl: Ke,
        hsla: Ke,
        rgb: he,
        rgba: he
    }
      , Le = {
        ALICEBLUE: 4042850303,
        ANTIQUEWHITE: 4209760255,
        AQUA: 16777215,
        AQUAMARINE: 2147472639,
        AZURE: 4043309055,
        BEIGE: 4126530815,
        BISQUE: 4293182719,
        BLACK: 255,
        BLANCHEDALMOND: 4293643775,
        BLUE: 65535,
        BLUEVIOLET: 2318131967,
        BROWN: 2771004159,
        BURLYWOOD: 3736635391,
        CADETBLUE: 1604231423,
        CHARTREUSE: 2147418367,
        CHOCOLATE: 3530104575,
        CORAL: 4286533887,
        CORNFLOWERBLUE: 1687547391,
        CORNSILK: 4294499583,
        CRIMSON: 3692313855,
        CYAN: 16777215,
        DARKBLUE: 35839,
        DARKCYAN: 9145343,
        DARKGOLDENROD: 3095837695,
        DARKGRAY: 2846468607,
        DARKGREEN: 6553855,
        DARKGREY: 2846468607,
        DARKKHAKI: 3182914559,
        DARKMAGENTA: 2332068863,
        DARKOLIVEGREEN: 1433087999,
        DARKORANGE: 4287365375,
        DARKORCHID: 2570243327,
        DARKRED: 2332033279,
        DARKSALMON: 3918953215,
        DARKSEAGREEN: 2411499519,
        DARKSLATEBLUE: 1211993087,
        DARKSLATEGRAY: 793726975,
        DARKSLATEGREY: 793726975,
        DARKTURQUOISE: 13554175,
        DARKVIOLET: 2483082239,
        DEEPPINK: 4279538687,
        DEEPSKYBLUE: 12582911,
        DIMGRAY: 1768516095,
        DIMGREY: 1768516095,
        DODGERBLUE: 512819199,
        FIREBRICK: 2988581631,
        FLORALWHITE: 4294635775,
        FORESTGREEN: 579543807,
        FUCHSIA: 4278255615,
        GAINSBORO: 3705462015,
        GHOSTWHITE: 4177068031,
        GOLD: 4292280575,
        GOLDENROD: 3668254975,
        GRAY: 2155905279,
        GREEN: 8388863,
        GREENYELLOW: 2919182335,
        GREY: 2155905279,
        HONEYDEW: 4043305215,
        HOTPINK: 4285117695,
        INDIANRED: 3445382399,
        INDIGO: 1258324735,
        IVORY: 4294963455,
        KHAKI: 4041641215,
        LAVENDER: 3873897215,
        LAVENDERBLUSH: 4293981695,
        LAWNGREEN: 2096890111,
        LEMONCHIFFON: 4294626815,
        LIGHTBLUE: 2916673279,
        LIGHTCORAL: 4034953471,
        LIGHTCYAN: 3774873599,
        LIGHTGOLDENRODYELLOW: 4210742015,
        LIGHTGRAY: 3553874943,
        LIGHTGREEN: 2431553791,
        LIGHTGREY: 3553874943,
        LIGHTPINK: 4290167295,
        LIGHTSALMON: 4288707327,
        LIGHTSEAGREEN: 548580095,
        LIGHTSKYBLUE: 2278488831,
        LIGHTSLATEGRAY: 2005441023,
        LIGHTSLATEGREY: 2005441023,
        LIGHTSTEELBLUE: 2965692159,
        LIGHTYELLOW: 4294959359,
        LIME: 16711935,
        LIMEGREEN: 852308735,
        LINEN: 4210091775,
        MAGENTA: 4278255615,
        MAROON: 2147483903,
        MEDIUMAQUAMARINE: 1724754687,
        MEDIUMBLUE: 52735,
        MEDIUMORCHID: 3126187007,
        MEDIUMPURPLE: 2473647103,
        MEDIUMSEAGREEN: 1018393087,
        MEDIUMSLATEBLUE: 2070474495,
        MEDIUMSPRINGGREEN: 16423679,
        MEDIUMTURQUOISE: 1221709055,
        MEDIUMVIOLETRED: 3340076543,
        MIDNIGHTBLUE: 421097727,
        MINTCREAM: 4127193855,
        MISTYROSE: 4293190143,
        MOCCASIN: 4293178879,
        NAVAJOWHITE: 4292783615,
        NAVY: 33023,
        OLDLACE: 4260751103,
        OLIVE: 2155872511,
        OLIVEDRAB: 1804477439,
        ORANGE: 4289003775,
        ORANGERED: 4282712319,
        ORCHID: 3664828159,
        PALEGOLDENROD: 4008225535,
        PALEGREEN: 2566625535,
        PALETURQUOISE: 2951671551,
        PALEVIOLETRED: 3681588223,
        PAPAYAWHIP: 4293907967,
        PEACHPUFF: 4292524543,
        PERU: 3448061951,
        PINK: 4290825215,
        PLUM: 3718307327,
        POWDERBLUE: 2967529215,
        PURPLE: 2147516671,
        REBECCAPURPLE: 1714657791,
        RED: 4278190335,
        ROSYBROWN: 3163525119,
        ROYALBLUE: 1097458175,
        SADDLEBROWN: 2336560127,
        SALMON: 4202722047,
        SANDYBROWN: 4104413439,
        SEAGREEN: 780883967,
        SEASHELL: 4294307583,
        SIENNA: 2689740287,
        SILVER: 3233857791,
        SKYBLUE: 2278484991,
        SLATEBLUE: 1784335871,
        SLATEGRAY: 1887473919,
        SLATEGREY: 1887473919,
        SNOW: 4294638335,
        SPRINGGREEN: 16744447,
        STEELBLUE: 1182971135,
        TAN: 3535047935,
        TEAL: 8421631,
        THISTLE: 3636451583,
        TOMATO: 4284696575,
        TRANSPARENT: 0,
        TURQUOISE: 1088475391,
        VIOLET: 4001558271,
        WHEAT: 4125012991,
        WHITE: 4294967295,
        WHITESMOKE: 4126537215,
        YELLOW: 4294902015,
        YELLOWGREEN: 2597139199
    }
      , be = {
        name: "background-clip",
        initialValue: "border-box",
        prefix: !1,
        type: 1,
        parse: function(A, e) {
            return e.map(function(A) {
                if (_A(A))
                    switch (A.value) {
                    case "padding-box":
                        return 1;
                    case "content-box":
                        return 2
                    }
                return 0
            })
        }
    }
      , De = {
        name: "background-color",
        initialValue: "transparent",
        prefix: !1,
        type: 3,
        format: "color"
    }
      , Ke = function(t, A) {
        var r = Ce(180)
          , B = [];
        return Ae(A).forEach(function(A, e) {
            if (0 === e) {
                e = A[0];
                if (20 === e.type && -1 !== ["top", "left", "right", "bottom"].indexOf(e.value))
                    return void (r = se(A));
                if (ne(e))
                    return void (r = (le(t, e) + Ce(270)) % Ce(360))
            }
            A = He(t, A);
            B.push(A)
        }),
        {
            angle: r,
            stops: B,
            type: 1
        }
    }
      , ve = "closest-side"
      , xe = "farthest-side"
      , Me = "closest-corner"
      , Se = "farthest-corner"
      , Te = "ellipse"
      , Ge = "contain"
      , he = function(r, A) {
        var B = 0
          , n = 3
          , s = []
          , o = [];
        return Ae(A).forEach(function(A, e) {
            var t = !0;
            0 === e ? t = A.reduce(function(A, e) {
                if (_A(e))
                    switch (e.value) {
                    case "center":
                        return o.push(ge),
                        !1;
                    case "top":
                    case "left":
                        return o.push(ae),
                        !1;
                    case "right":
                    case "bottom":
                        return o.push(we),
                        !1
                    }
                else if (te(e) || ee(e))
                    return o.push(e),
                    !1;
                return A
            }, t) : 1 === e && (t = A.reduce(function(A, e) {
                if (_A(e))
                    switch (e.value) {
                    case "circle":
                        return B = 0,
                        !1;
                    case Te:
                        return !(B = 1);
                    case Ge:
                    case ve:
                        return n = 0,
                        !1;
                    case xe:
                        return !(n = 1);
                    case Me:
                        return !(n = 2);
                    case "cover":
                    case Se:
                        return !(n = 3)
                    }
                else if (ee(e) || te(e))
                    return (n = !Array.isArray(n) ? [] : n).push(e),
                    !1;
                return A
            }, t)),
            t && (A = He(r, A),
            s.push(A))
        }),
        {
            size: n,
            shape: B,
            stops: s,
            position: o,
            type: 2
        }
    }
      , Oe = function(A, e) {
        if (22 === e.type) {
            var t = {
                url: e.value,
                type: 0
            };
            return A.cache.addImage(e.value),
            t
        }
        if (18 !== e.type)
            throw new Error("Unsupported image type " + e.type);
        t = ke[e.name];
        if (void 0 === t)
            throw new Error('Attempting to parse an unsupported image function "' + e.name + '"');
        return t(A, e.values)
    };
    var Ve, ke = {
        "linear-gradient": function(t, A) {
            var r = Ce(180)
              , B = [];
            return Ae(A).forEach(function(A, e) {
                if (0 === e) {
                    e = A[0];
                    if (20 === e.type && "to" === e.value)
                        return void (r = se(A));
                    if (ne(e))
                        return void (r = le(t, e))
                }
                A = He(t, A);
                B.push(A)
            }),
            {
                angle: r,
                stops: B,
                type: 1
            }
        },
        "-moz-linear-gradient": Ke,
        "-ms-linear-gradient": Ke,
        "-o-linear-gradient": Ke,
        "-webkit-linear-gradient": Ke,
        "radial-gradient": function(B, A) {
            var n = 0
              , s = 3
              , o = []
              , i = [];
            return Ae(A).forEach(function(A, e) {
                var t, r = !0;
                0 === e && (t = !1,
                r = A.reduce(function(A, e) {
                    if (t)
                        if (_A(e))
                            switch (e.value) {
                            case "center":
                                return i.push(ge),
                                A;
                            case "top":
                            case "left":
                                return i.push(ae),
                                A;
                            case "right":
                            case "bottom":
                                return i.push(we),
                                A
                            }
                        else
                            (te(e) || ee(e)) && i.push(e);
                    else if (_A(e))
                        switch (e.value) {
                        case "circle":
                            return n = 0,
                            !1;
                        case Te:
                            return !(n = 1);
                        case "at":
                            return !(t = !0);
                        case ve:
                            return s = 0,
                            !1;
                        case "cover":
                        case xe:
                            return !(s = 1);
                        case Ge:
                        case Me:
                            return !(s = 2);
                        case Se:
                            return !(s = 3)
                        }
                    else if (ee(e) || te(e))
                        return (s = !Array.isArray(s) ? [] : s).push(e),
                        !1;
                    return A
                }, r)),
                r && (A = He(B, A),
                o.push(A))
            }),
            {
                size: s,
                shape: n,
                stops: o,
                position: i,
                type: 2
            }
        },
        "-moz-radial-gradient": he,
        "-ms-radial-gradient": he,
        "-o-radial-gradient": he,
        "-webkit-radial-gradient": he,
        "-webkit-gradient": function(r, A) {
            var e = Ce(180)
              , B = []
              , n = 1;
            return Ae(A).forEach(function(A, e) {
                var t, A = A[0];
                if (0 === e) {
                    if (_A(A) && "linear" === A.value)
                        return void (n = 1);
                    if (_A(A) && "radial" === A.value)
                        return void (n = 2)
                }
                18 === A.type && ("from" === A.name ? (t = ue(r, A.values[0]),
                B.push({
                    stop: ae,
                    color: t
                })) : "to" === A.name ? (t = ue(r, A.values[0]),
                B.push({
                    stop: we,
                    color: t
                })) : "color-stop" !== A.name || 2 === (A = A.values.filter($A)).length && (t = ue(r, A[1]),
                A = A[0],
                ZA(A) && B.push({
                    stop: {
                        type: 16,
                        number: 100 * A.number,
                        flags: A.flags
                    },
                    color: t
                })))
            }),
            1 === n ? {
                angle: (e + Ce(180)) % Ce(360),
                stops: B,
                type: n
            } : {
                size: 3,
                shape: 0,
                stops: B,
                position: [],
                type: n
            }
        }
    }, Re = {
        name: "background-image",
        initialValue: "none",
        type: 1,
        prefix: !1,
        parse: function(e, A) {
            if (0 === A.length)
                return [];
            var t = A[0];
            return 20 === t.type && "none" === t.value ? [] : A.filter(function(A) {
                return $A(A) && !(20 === (A = A).type && "none" === A.value || 18 === A.type && !ke[A.name])
            }).map(function(A) {
                return Oe(e, A)
            })
        }
    }, Ne = {
        name: "background-origin",
        initialValue: "border-box",
        prefix: !1,
        type: 1,
        parse: function(A, e) {
            return e.map(function(A) {
                if (_A(A))
                    switch (A.value) {
                    case "padding-box":
                        return 1;
                    case "content-box":
                        return 2
                    }
                return 0
            })
        }
    }, Pe = {
        name: "background-position",
        initialValue: "0% 0%",
        type: 1,
        prefix: !1,
        parse: function(A, e) {
            return Ae(e).map(function(A) {
                return A.filter(te)
            }).map(re)
        }
    }, Xe = {
        name: "background-repeat",
        initialValue: "repeat",
        prefix: !1,
        type: 1,
        parse: function(A, e) {
            return Ae(e).map(function(A) {
                return A.filter(_A).map(function(A) {
                    return A.value
                }).join(" ")
            }).map(Je)
        }
    }, Je = function(A) {
        switch (A) {
        case "no-repeat":
            return 1;
        case "repeat-x":
        case "repeat no-repeat":
            return 2;
        case "repeat-y":
        case "no-repeat repeat":
            return 3;
        default:
            return 0
        }
    };
    (he = Ve = Ve || {}).AUTO = "auto",
    he.CONTAIN = "contain";
    function Ye(A, e) {
        return _A(A) && "normal" === A.value ? 1.2 * e : 17 === A.type ? e * A.number : te(A) ? Ue(A, e) : e
    }
    var We, Ze, _e = {
        name: "background-size",
        initialValue: "0",
        prefix: !(he.COVER = "cover"),
        type: 1,
        parse: function(A, e) {
            return Ae(e).map(function(A) {
                return A.filter(qe)
            })
        }
    }, qe = function(A) {
        return _A(A) || te(A)
    }, he = function(A) {
        return {
            name: "border-" + A + "-color",
            initialValue: "transparent",
            prefix: !1,
            type: 3,
            format: "color"
        }
    }, je = he("top"), ze = he("right"), $e = he("bottom"), At = he("left"), he = function(A) {
        return {
            name: "border-radius-" + A,
            initialValue: "0 0",
            prefix: !1,
            type: 1,
            parse: function(A, e) {
                return re(e.filter(te))
            }
        }
    }, et = he("top-left"), tt = he("top-right"), rt = he("bottom-right"), Bt = he("bottom-left"), he = function(A) {
        return {
            name: "border-" + A + "-style",
            initialValue: "solid",
            prefix: !1,
            type: 2,
            parse: function(A, e) {
                switch (e) {
                case "none":
                    return 0;
                case "dashed":
                    return 2;
                case "dotted":
                    return 3;
                case "double":
                    return 4
                }
                return 1
            }
        }
    }, nt = he("top"), st = he("right"), ot = he("bottom"), it = he("left"), he = function(A) {
        return {
            name: "border-" + A + "-width",
            initialValue: "0",
            type: 0,
            prefix: !1,
            parse: function(A, e) {
                return WA(e) ? e.number : 0
            }
        }
    }, Qt = he("top"), ct = he("right"), at = he("bottom"), gt = he("left"), wt = {
        name: "color",
        initialValue: "transparent",
        prefix: !1,
        type: 3,
        format: "color"
    }, Ut = {
        name: "direction",
        initialValue: "ltr",
        prefix: !1,
        type: 2,
        parse: function(A, e) {
            return "rtl" !== e ? 0 : 1
        }
    }, lt = {
        name: "display",
        initialValue: "inline-block",
        prefix: !1,
        type: 1,
        parse: function(A, e) {
            return e.filter(_A).reduce(function(A, e) {
                return A | Ct(e.value)
            }, 0)
        }
    }, Ct = function(A) {
        switch (A) {
        case "block":
        case "-webkit-box":
            return 2;
        case "inline":
            return 4;
        case "run-in":
            return 8;
        case "flow":
            return 16;
        case "flow-root":
            return 32;
        case "table":
            return 64;
        case "flex":
        case "-webkit-flex":
            return 128;
        case "grid":
        case "-ms-grid":
            return 256;
        case "ruby":
            return 512;
        case "subgrid":
            return 1024;
        case "list-item":
            return 2048;
        case "table-row-group":
            return 4096;
        case "table-header-group":
            return 8192;
        case "table-footer-group":
            return 16384;
        case "table-row":
            return 32768;
        case "table-cell":
            return 65536;
        case "table-column-group":
            return 131072;
        case "table-column":
            return 262144;
        case "table-caption":
            return 524288;
        case "ruby-base":
            return 1048576;
        case "ruby-text":
            return 2097152;
        case "ruby-base-container":
            return 4194304;
        case "ruby-text-container":
            return 8388608;
        case "contents":
            return 16777216;
        case "inline-block":
            return 33554432;
        case "inline-list-item":
            return 67108864;
        case "inline-table":
            return 134217728;
        case "inline-flex":
            return 268435456;
        case "inline-grid":
            return 536870912
        }
        return 0
    }, ut = {
        name: "float",
        initialValue: "none",
        prefix: !1,
        type: 2,
        parse: function(A, e) {
            switch (e) {
            case "left":
                return 1;
            case "right":
                return 2;
            case "inline-start":
                return 3;
            case "inline-end":
                return 4
            }
            return 0
        }
    }, Ft = {
        name: "letter-spacing",
        initialValue: "0",
        prefix: !1,
        type: 0,
        parse: function(A, e) {
            return !(20 === e.type && "normal" === e.value || 17 !== e.type && 15 !== e.type) ? e.number : 0
        }
    }, ht = {
        name: "line-break",
        initialValue: (he = We = We || {}).NORMAL = "normal",
        prefix: !(he.STRICT = "strict"),
        type: 2,
        parse: function(A, e) {
            return "strict" !== e ? We.NORMAL : We.STRICT
        }
    }, dt = {
        name: "line-height",
        initialValue: "normal",
        prefix: !1,
        type: 4
    }, ft = {
        name: "list-style-image",
        initialValue: "none",
        type: 0,
        prefix: !1,
        parse: function(A, e) {
            return 20 === e.type && "none" === e.value ? null : Oe(A, e)
        }
    }, Ht = {
        name: "list-style-position",
        initialValue: "outside",
        prefix: !1,
        type: 2,
        parse: function(A, e) {
            return "inside" !== e ? 1 : 0
        }
    }, pt = {
        name: "list-style-type",
        initialValue: "none",
        prefix: !1,
        type: 2,
        parse: function(A, e) {
            switch (e) {
            case "disc":
                return 0;
            case "circle":
                return 1;
            case "square":
                return 2;
            case "decimal":
                return 3;
            case "cjk-decimal":
                return 4;
            case "decimal-leading-zero":
                return 5;
            case "lower-roman":
                return 6;
            case "upper-roman":
                return 7;
            case "lower-greek":
                return 8;
            case "lower-alpha":
                return 9;
            case "upper-alpha":
                return 10;
            case "arabic-indic":
                return 11;
            case "armenian":
                return 12;
            case "bengali":
                return 13;
            case "cambodian":
                return 14;
            case "cjk-earthly-branch":
                return 15;
            case "cjk-heavenly-stem":
                return 16;
            case "cjk-ideographic":
                return 17;
            case "devanagari":
                return 18;
            case "ethiopic-numeric":
                return 19;
            case "georgian":
                return 20;
            case "gujarati":
                return 21;
            case "gurmukhi":
            case "hebrew":
                return 22;
            case "hiragana":
                return 23;
            case "hiragana-iroha":
                return 24;
            case "japanese-formal":
                return 25;
            case "japanese-informal":
                return 26;
            case "kannada":
                return 27;
            case "katakana":
                return 28;
            case "katakana-iroha":
                return 29;
            case "khmer":
                return 30;
            case "korean-hangul-formal":
                return 31;
            case "korean-hanja-formal":
                return 32;
            case "korean-hanja-informal":
                return 33;
            case "lao":
                return 34;
            case "lower-armenian":
                return 35;
            case "malayalam":
                return 36;
            case "mongolian":
                return 37;
            case "myanmar":
                return 38;
            case "oriya":
                return 39;
            case "persian":
                return 40;
            case "simp-chinese-formal":
                return 41;
            case "simp-chinese-informal":
                return 42;
            case "tamil":
                return 43;
            case "telugu":
                return 44;
            case "thai":
                return 45;
            case "tibetan":
                return 46;
            case "trad-chinese-formal":
                return 47;
            case "trad-chinese-informal":
                return 48;
            case "upper-armenian":
                return 49;
            case "disclosure-open":
                return 50;
            case "disclosure-closed":
                return 51;
            default:
                return -1
            }
        }
    }, he = function(A) {
        return {
            name: "margin-" + A,
            initialValue: "0",
            prefix: !1,
            type: 4
        }
    }, Et = he("top"), It = he("right"), yt = he("bottom"), Kt = he("left"), mt = {
        name: "overflow",
        initialValue: "visible",
        prefix: !1,
        type: 1,
        parse: function(A, e) {
            return e.filter(_A).map(function(A) {
                switch (A.value) {
                case "hidden":
                    return 1;
                case "scroll":
                    return 2;
                case "clip":
                    return 3;
                case "auto":
                    return 4;
                default:
                    return 0
                }
            })
        }
    }, Lt = {
        name: "overflow-wrap",
        initialValue: "normal",
        prefix: !1,
        type: 2,
        parse: function(A, e) {
            return "break-word" !== e ? "normal" : "break-word"
        }
    }, he = function(A) {
        return {
            name: "padding-" + A,
            initialValue: "0",
            prefix: !1,
            type: 3,
            format: "length-percentage"
        }
    }, bt = he("top"), Dt = he("right"), vt = he("bottom"), xt = he("left"), Mt = {
        name: "text-align",
        initialValue: "left",
        prefix: !1,
        type: 2,
        parse: function(A, e) {
            switch (e) {
            case "right":
                return 2;
            case "center":
            case "justify":
                return 1;
            default:
                return 0
            }
        }
    }, St = {
        name: "position",
        initialValue: "static",
        prefix: !1,
        type: 2,
        parse: function(A, e) {
            switch (e) {
            case "relative":
                return 1;
            case "absolute":
                return 2;
            case "fixed":
                return 3;
            case "sticky":
                return 4
            }
            return 0
        }
    }, Tt = {
        name: "text-shadow",
        initialValue: "none",
        type: 1,
        prefix: !1,
        parse: function(n, A) {
            return 1 === A.length && jA(A[0], "none") ? [] : Ae(A).map(function(A) {
                for (var e = {
                    color: Le.TRANSPARENT,
                    offsetX: ae,
                    offsetY: ae,
                    blur: ae
                }, t = 0, r = 0; r < A.length; r++) {
                    var B = A[r];
                    ee(B) ? (0 === t ? e.offsetX = B : 1 === t ? e.offsetY = B : e.blur = B,
                    t++) : e.color = ue(n, B)
                }
                return e
            })
        }
    }, Gt = {
        name: "text-transform",
        initialValue: "none",
        prefix: !1,
        type: 2,
        parse: function(A, e) {
            switch (e) {
            case "uppercase":
                return 2;
            case "lowercase":
                return 1;
            case "capitalize":
                return 3
            }
            return 0
        }
    }, Ot = {
        name: "transform",
        initialValue: "none",
        prefix: !0,
        type: 0,
        parse: function(A, e) {
            if (20 === e.type && "none" === e.value)
                return null;
            if (18 !== e.type)
                return null;
            var t = Vt[e.name];
            if (void 0 === t)
                throw new Error('Attempting to parse an unsupported transform function "' + e.name + '"');
            return t(e.values)
        }
    }, Vt = {
        matrix: function(A) {
            A = A.filter(function(A) {
                return 17 === A.type
            }).map(function(A) {
                return A.number
            });
            return 6 === A.length ? A : null
        },
        matrix3d: function(A) {
            var e = A.filter(function(A) {
                return 17 === A.type
            }).map(function(A) {
                return A.number
            })
              , t = e[0]
              , r = e[1];
            e[2],
            e[3];
            var B = e[4]
              , n = e[5];
            e[6],
            e[7],
            e[8],
            e[9],
            e[10],
            e[11];
            var s = e[12]
              , A = e[13];
            return e[14],
            e[15],
            16 === e.length ? [t, r, B, n, s, A] : null
        }
    }, he = {
        type: 16,
        number: 50,
        flags: 4
    }, kt = [he, he], Rt = {
        name: "transform-origin",
        initialValue: "50% 50%",
        prefix: !0,
        type: 1,
        parse: function(A, e) {
            e = e.filter(te);
            return 2 !== e.length ? kt : [e[0], e[1]]
        }
    }, Nt = {
        name: "visible",
        initialValue: "none",
        prefix: !1,
        type: 2,
        parse: function(A, e) {
            switch (e) {
            case "hidden":
                return 1;
            case "collapse":
                return 2;
            default:
                return 0
            }
        }
    };
    (he = Ze = Ze || {}).NORMAL = "normal",
    he.BREAK_ALL = "break-all";
    function Pt(A, e) {
        return 0 != (A & e)
    }
    function Xt(A, e, t) {
        return (A = A && A[Math.min(e, A.length - 1)]) ? t ? A.open : A.close : ""
    }
    var Jt = {
        name: "word-break",
        initialValue: "normal",
        prefix: !(he.KEEP_ALL = "keep-all"),
        type: 2,
        parse: function(A, e) {
            switch (e) {
            case "break-all":
                return Ze.BREAK_ALL;
            case "keep-all":
                return Ze.KEEP_ALL;
            default:
                return Ze.NORMAL
            }
        }
    }
      , Yt = {
        name: "z-index",
        initialValue: "auto",
        prefix: !1,
        type: 0,
        parse: function(A, e) {
            if (20 === e.type)
                return {
                    auto: !0,
                    order: 0
                };
            if (ZA(e))
                return {
                    auto: !1,
                    order: e.number
                };
            throw new Error("Invalid z-index number parsed")
        }
    }
      , Wt = function(A, e) {
        if (15 === e.type)
            switch (e.unit.toLowerCase()) {
            case "s":
                return 1e3 * e.number;
            case "ms":
                return e.number
            }
        throw new Error("Unsupported time type")
    }
      , Zt = {
        name: "opacity",
        initialValue: "1",
        type: 0,
        prefix: !1,
        parse: function(A, e) {
            return ZA(e) ? e.number : 1
        }
    }
      , _t = {
        name: "text-decoration-color",
        initialValue: "transparent",
        prefix: !1,
        type: 3,
        format: "color"
    }
      , qt = {
        name: "text-decoration-line",
        initialValue: "none",
        prefix: !1,
        type: 1,
        parse: function(A, e) {
            return e.filter(_A).map(function(A) {
                switch (A.value) {
                case "underline":
                    return 1;
                case "overline":
                    return 2;
                case "line-through":
                    return 3;
                case "none":
                    return 4
                }
                return 0
            }).filter(function(A) {
                return 0 !== A
            })
        }
    }
      , jt = {
        name: "font-family",
        initialValue: "",
        prefix: !1,
        type: 1,
        parse: function(A, e) {
            var t = []
              , r = [];
            return e.forEach(function(A) {
                switch (A.type) {
                case 20:
                case 0:
                    t.push(A.value);
                    break;
                case 17:
                    t.push(A.number.toString());
                    break;
                case 4:
                    r.push(t.join(" ")),
                    t.length = 0
                }
            }),
            t.length && r.push(t.join(" ")),
            r.map(function(A) {
                return -1 === A.indexOf(" ") ? A : "'" + A + "'"
            })
        }
    }
      , zt = {
        name: "font-size",
        initialValue: "0",
        prefix: !1,
        type: 3,
        format: "length"
    }
      , $t = {
        name: "font-weight",
        initialValue: "normal",
        type: 0,
        prefix: !1,
        parse: function(A, e) {
            return ZA(e) ? e.number : !_A(e) || "bold" !== e.value ? 400 : 700
        }
    }
      , Ar = {
        name: "font-variant",
        initialValue: "none",
        type: 1,
        prefix: !1,
        parse: function(A, e) {
            return e.filter(_A).map(function(A) {
                return A.value
            })
        }
    }
      , er = {
        name: "font-style",
        initialValue: "normal",
        prefix: !1,
        type: 2,
        parse: function(A, e) {
            switch (e) {
            case "oblique":
                return "oblique";
            case "italic":
                return "italic";
            default:
                return "normal"
            }
        }
    }
      , tr = {
        name: "content",
        initialValue: "none",
        type: 1,
        prefix: !1,
        parse: function(A, e) {
            if (0 === e.length)
                return [];
            var t = e[0];
            return 20 === t.type && "none" === t.value ? [] : e
        }
    }
      , rr = {
        name: "counter-increment",
        initialValue: "none",
        prefix: !0,
        type: 1,
        parse: function(A, e) {
            if (0 === e.length)
                return null;
            var t = e[0];
            if (20 === t.type && "none" === t.value)
                return null;
            for (var r = [], B = e.filter(zA), n = 0; n < B.length; n++) {
                var s = B[n]
                  , o = B[n + 1];
                20 === s.type && (o = o && ZA(o) ? o.number : 1,
                r.push({
                    counter: s.value,
                    increment: o
                }))
            }
            return r
        }
    }
      , Br = {
        name: "counter-reset",
        initialValue: "none",
        prefix: !0,
        type: 1,
        parse: function(A, e) {
            if (0 === e.length)
                return [];
            for (var t = [], r = e.filter(zA), B = 0; B < r.length; B++) {
                var n = r[B]
                  , s = r[B + 1];
                _A(n) && "none" !== n.value && (s = s && ZA(s) ? s.number : 0,
                t.push({
                    counter: n.value,
                    reset: s
                }))
            }
            return t
        }
    }
      , nr = {
        name: "duration",
        initialValue: "0s",
        prefix: !1,
        type: 1,
        parse: function(e, A) {
            return A.filter(WA).map(function(A) {
                return Wt(e, A)
            })
        }
    }
      , sr = {
        name: "quotes",
        initialValue: "none",
        prefix: !0,
        type: 1,
        parse: function(A, e) {
            if (0 === e.length)
                return null;
            var t = e[0];
            if (20 === t.type && "none" === t.value)
                return null;
            var r = []
              , B = e.filter(qA);
            if (B.length % 2 != 0)
                return null;
            for (var n = 0; n < B.length; n += 2) {
                var s = B[n].value
                  , o = B[n + 1].value;
                r.push({
                    open: s,
                    close: o
                })
            }
            return r
        }
    }
      , or = {
        name: "box-shadow",
        initialValue: "none",
        type: 1,
        prefix: !1,
        parse: function(n, A) {
            return 1 === A.length && jA(A[0], "none") ? [] : Ae(A).map(function(A) {
                for (var e = {
                    color: 255,
                    offsetX: ae,
                    offsetY: ae,
                    blur: ae,
                    spread: ae,
                    inset: !1
                }, t = 0, r = 0; r < A.length; r++) {
                    var B = A[r];
                    jA(B, "inset") ? e.inset = !0 : ee(B) ? (0 === t ? e.offsetX = B : 1 === t ? e.offsetY = B : 2 === t ? e.blur = B : e.spread = B,
                    t++) : e.color = ue(n, B)
                }
                return e
            })
        }
    }
      , ir = {
        name: "paint-order",
        initialValue: "normal",
        prefix: !1,
        type: 1,
        parse: function(A, e) {
            var t = [];
            return e.filter(_A).forEach(function(A) {
                switch (A.value) {
                case "stroke":
                    t.push(1);
                    break;
                case "fill":
                    t.push(0);
                    break;
                case "markers":
                    t.push(2)
                }
            }),
            [0, 1, 2].forEach(function(A) {
                -1 === t.indexOf(A) && t.push(A)
            }),
            t
        }
    }
      , Qr = {
        name: "-webkit-text-stroke-color",
        initialValue: "currentcolor",
        prefix: !1,
        type: 3,
        format: "color"
    }
      , cr = {
        name: "-webkit-text-stroke-width",
        initialValue: "0",
        type: 0,
        prefix: !1,
        parse: function(A, e) {
            return WA(e) ? e.number : 0
        }
    }
      , ar = (gr.prototype.isVisible = function() {
        return 0 < this.display && 0 < this.opacity && 0 === this.visibility
    }
    ,
    gr.prototype.isTransparent = function() {
        return oe(this.backgroundColor)
    }
    ,
    gr.prototype.isTransformed = function() {
        return null !== this.transform
    }
    ,
    gr.prototype.isPositioned = function() {
        return 0 !== this.position
    }
    ,
    gr.prototype.isPositionedWithZIndex = function() {
        return this.isPositioned() && !this.zIndex.auto
    }
    ,
    gr.prototype.isFloating = function() {
        return 0 !== this.float
    }
    ,
    gr.prototype.isInlineLevel = function() {
        return Pt(this.display, 4) || Pt(this.display, 33554432) || Pt(this.display, 268435456) || Pt(this.display, 536870912) || Pt(this.display, 67108864) || Pt(this.display, 134217728)
    }
    ,
    gr);
    function gr(A, e) {
        this.animationDuration = lr(A, nr, e.animationDuration),
        this.backgroundClip = lr(A, be, e.backgroundClip),
        this.backgroundColor = lr(A, De, e.backgroundColor),
        this.backgroundImage = lr(A, Re, e.backgroundImage),
        this.backgroundOrigin = lr(A, Ne, e.backgroundOrigin),
        this.backgroundPosition = lr(A, Pe, e.backgroundPosition),
        this.backgroundRepeat = lr(A, Xe, e.backgroundRepeat),
        this.backgroundSize = lr(A, _e, e.backgroundSize),
        this.borderTopColor = lr(A, je, e.borderTopColor),
        this.borderRightColor = lr(A, ze, e.borderRightColor),
        this.borderBottomColor = lr(A, $e, e.borderBottomColor),
        this.borderLeftColor = lr(A, At, e.borderLeftColor),
        this.borderTopLeftRadius = lr(A, et, e.borderTopLeftRadius),
        this.borderTopRightRadius = lr(A, tt, e.borderTopRightRadius),
        this.borderBottomRightRadius = lr(A, rt, e.borderBottomRightRadius),
        this.borderBottomLeftRadius = lr(A, Bt, e.borderBottomLeftRadius),
        this.borderTopStyle = lr(A, nt, e.borderTopStyle),
        this.borderRightStyle = lr(A, st, e.borderRightStyle),
        this.borderBottomStyle = lr(A, ot, e.borderBottomStyle),
        this.borderLeftStyle = lr(A, it, e.borderLeftStyle),
        this.borderTopWidth = lr(A, Qt, e.borderTopWidth),
        this.borderRightWidth = lr(A, ct, e.borderRightWidth),
        this.borderBottomWidth = lr(A, at, e.borderBottomWidth),
        this.borderLeftWidth = lr(A, gt, e.borderLeftWidth),
        this.boxShadow = lr(A, or, e.boxShadow),
        this.color = lr(A, wt, e.color),
        this.direction = lr(A, Ut, e.direction),
        this.display = lr(A, lt, e.display),
        this.float = lr(A, ut, e.cssFloat),
        this.fontFamily = lr(A, jt, e.fontFamily),
        this.fontSize = lr(A, zt, e.fontSize),
        this.fontStyle = lr(A, er, e.fontStyle),
        this.fontVariant = lr(A, Ar, e.fontVariant),
        this.fontWeight = lr(A, $t, e.fontWeight),
        this.letterSpacing = lr(A, Ft, e.letterSpacing),
        this.lineBreak = lr(A, ht, e.lineBreak),
        this.lineHeight = lr(A, dt, e.lineHeight),
        this.listStyleImage = lr(A, ft, e.listStyleImage),
        this.listStylePosition = lr(A, Ht, e.listStylePosition),
        this.listStyleType = lr(A, pt, e.listStyleType),
        this.marginTop = lr(A, Et, e.marginTop),
        this.marginRight = lr(A, It, e.marginRight),
        this.marginBottom = lr(A, yt, e.marginBottom),
        this.marginLeft = lr(A, Kt, e.marginLeft),
        this.opacity = lr(A, Zt, e.opacity);
        var t = lr(A, mt, e.overflow);
        this.overflowX = t[0],
        this.overflowY = t[1 < t.length ? 1 : 0],
        this.overflowWrap = lr(A, Lt, e.overflowWrap),
        this.paddingTop = lr(A, bt, e.paddingTop),
        this.paddingRight = lr(A, Dt, e.paddingRight),
        this.paddingBottom = lr(A, vt, e.paddingBottom),
        this.paddingLeft = lr(A, xt, e.paddingLeft),
        this.paintOrder = lr(A, ir, e.paintOrder),
        this.position = lr(A, St, e.position),
        this.textAlign = lr(A, Mt, e.textAlign),
        this.textDecorationColor = lr(A, _t, null !== (t = e.textDecorationColor) && void 0 !== t ? t : e.color),
        this.textDecorationLine = lr(A, qt, null !== (t = e.textDecorationLine) && void 0 !== t ? t : e.textDecoration),
        this.textShadow = lr(A, Tt, e.textShadow),
        this.textTransform = lr(A, Gt, e.textTransform),
        this.transform = lr(A, Ot, e.transform),
        this.transformOrigin = lr(A, Rt, e.transformOrigin),
        this.visibility = lr(A, Nt, e.visibility),
        this.webkitTextStrokeColor = lr(A, Qr, e.webkitTextStrokeColor),
        this.webkitTextStrokeWidth = lr(A, cr, e.webkitTextStrokeWidth),
        this.wordBreak = lr(A, Jt, e.wordBreak),
        this.zIndex = lr(A, Yt, e.zIndex)
    }
    for (var wr = function(A, e) {
        this.content = lr(A, tr, e.content),
        this.quotes = lr(A, sr, e.quotes)
    }, Ur = function(A, e) {
        this.counterIncrement = lr(A, rr, e.counterIncrement),
        this.counterReset = lr(A, Br, e.counterReset)
    }, lr = function(A, e, t) {
        var r = new PA
          , t = null != t ? t.toString() : e.initialValue;
        r.write(t);
        var B = new JA(r.read());
        switch (e.type) {
        case 2:
            var n = B.parseComponentValue();
            return e.parse(A, _A(n) ? n.value : e.initialValue);
        case 0:
            return e.parse(A, B.parseComponentValue());
        case 1:
            return e.parse(A, B.parseComponentValues());
        case 4:
            return B.parseComponentValue();
        case 3:
            switch (e.format) {
            case "angle":
                return le(A, B.parseComponentValue());
            case "color":
                return ue(A, B.parseComponentValue());
            case "image":
                return Oe(A, B.parseComponentValue());
            case "length":
                var s = B.parseComponentValue();
                return ee(s) ? s : ae;
            case "length-percentage":
                s = B.parseComponentValue();
                return te(s) ? s : ae;
            case "time":
                return Wt(A, B.parseComponentValue())
            }
        }
    }, Cr = function(A, e) {
        A = function(A) {
            switch (A.getAttribute("data-html2canvas-debug")) {
            case "all":
                return 1;
            case "clone":
                return 2;
            case "parse":
                return 3;
            case "render":
                return 4;
            default:
                return 0
            }
        }(A);
        return 1 === A || e === A
    }, ur = function(A, e) {
        this.context = A,
        this.textNodes = [],
        this.elements = [],
        this.flags = 0,
        Cr(e, 3),
        this.styles = new ar(A,window.getComputedStyle(e, null)),
        JB(e) && (this.styles.animationDuration.some(function(A) {
            return 0 < A
        }) && (e.style.animationDuration = "0s"),
        null !== this.styles.transform && (e.style.transform = "none")),
        this.bounds = f(this.context, e),
        Cr(e, 4) && (this.flags |= 16)
    }, Fr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", hr = "undefined" == typeof Uint8Array ? [] : new Uint8Array(256), dr = 0; dr < Fr.length; dr++)
        hr[Fr.charCodeAt(dr)] = dr;
    function fr(A, e, t) {
        return A.slice ? A.slice(e, t) : new Uint16Array(Array.prototype.slice.call(A, e, t))
    }
    var Hr = (pr.prototype.get = function(A) {
        var e;
        if (0 <= A) {
            if (A < 55296 || 56319 < A && A <= 65535)
                return e = this.index[A >> 5],
                this.data[e = (e << 2) + (31 & A)];
            if (A <= 65535)
                return e = this.index[2048 + (A - 55296 >> 5)],
                this.data[e = (e << 2) + (31 & A)];
            if (A < this.highStart)
                return e = this.index[e = 2080 + (A >> 11)],
                e = this.index[e += A >> 5 & 63],
                this.data[e = (e << 2) + (31 & A)];
            if (A <= 1114111)
                return this.data[this.highValueIndex]
        }
        return this.errorValue
    }
    ,
    pr);
    function pr(A, e, t, r, B, n) {
        this.initialValue = A,
        this.errorValue = e,
        this.highStart = t,
        this.highValueIndex = r,
        this.index = B,
        this.data = n
    }
    for (var Er = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", Ir = "undefined" == typeof Uint8Array ? [] : new Uint8Array(256), yr = 0; yr < Er.length; yr++)
        Ir[Er.charCodeAt(yr)] = yr;
    function Kr(A) {
        return kr.get(A)
    }
    function mr(A) {
        var t = function(A) {
            for (var e = [], t = 0, r = A.length; t < r; ) {
                var B, n = A.charCodeAt(t++);
                55296 <= n && n <= 56319 && t < r ? 56320 == (64512 & (B = A.charCodeAt(t++))) ? e.push(((1023 & n) << 10) + (1023 & B) + 65536) : (e.push(n),
                t--) : e.push(n)
            }
            return e
        }(A)
          , r = t.length
          , B = 0
          , n = 0
          , s = t.map(Kr);
        return {
            next: function() {
                if (r <= B)
                    return {
                        done: !0,
                        value: null
                    };
                for (var A = Rr; B < r && (A = function(A, e) {
                    var t = e - 2
                      , r = A[t]
                      , B = A[e - 1]
                      , e = A[e];
                    if (2 === B && 3 === e)
                        return Rr;
                    if (2 === B || 3 === B || 4 === B)
                        return "÷";
                    if (2 === e || 3 === e || 4 === e)
                        return "÷";
                    if (B === Tr && -1 !== [Tr, Gr, Or, Vr].indexOf(e))
                        return Rr;
                    if (!(B !== Or && B !== Gr || e !== Gr && 10 !== e))
                        return Rr;
                    if ((B === Vr || 10 === B) && 10 === e)
                        return Rr;
                    if (13 === e || 5 === e)
                        return Rr;
                    if (7 === e)
                        return Rr;
                    if (1 === B)
                        return Rr;
                    if (13 === B && 14 === e) {
                        for (; 5 === r; )
                            r = A[--t];
                        if (14 === r)
                            return Rr
                    }
                    if (15 === B && 15 === e) {
                        for (var n = 0; 15 === r; )
                            n++,
                            r = A[--t];
                        if (n % 2 == 0)
                            return Rr
                    }
                    return "÷"
                }(s, ++B)) === Rr; )
                    ;
                if (A === Rr && B !== r)
                    return {
                        done: !0,
                        value: null
                    };
                var e = function() {
                    for (var A = [], e = 0; e < arguments.length; e++)
                        A[e] = arguments[e];
                    if (String.fromCodePoint)
                        return String.fromCodePoint.apply(String, A);
                    var t = A.length;
                    if (!t)
                        return "";
                    for (var r = [], B = -1, n = ""; ++B < t; ) {
                        var s = A[B];
                        s <= 65535 ? r.push(s) : (s -= 65536,
                        r.push(55296 + (s >> 10), s % 1024 + 56320)),
                        (B + 1 === t || 16384 < r.length) && (n += String.fromCharCode.apply(String, r),
                        r.length = 0)
                    }
                    return n
                }
                .apply(null, t.slice(n, B));
                return n = B,
                {
                    value: e,
                    done: !1
                }
            }
        }
    }
    function Lr(A) {
        return 0 === A[0] && 255 === A[1] && 0 === A[2] && 255 === A[3]
    }
    var br, Dr, vr, xr, Mr, Sr, Tr = 8, Gr = 9, Or = 11, Vr = 12, kr = (vr = function(A) {
        var e, t, r, B, n = .75 * A.length, s = A.length, o = 0;
        "=" === A[A.length - 1] && (n--,
        "=" === A[A.length - 2] && n--);
        for (var n = new ("undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array && void 0 !== Uint8Array.prototype.slice ? ArrayBuffer : Array)(n), i = Array.isArray(n) ? n : new Uint8Array(n), Q = 0; Q < s; Q += 4)
            e = hr[A.charCodeAt(Q)],
            t = hr[A.charCodeAt(Q + 1)],
            r = hr[A.charCodeAt(Q + 2)],
            B = hr[A.charCodeAt(Q + 3)],
            i[o++] = e << 2 | t >> 4,
            i[o++] = (15 & t) << 4 | r >> 2,
            i[o++] = (3 & r) << 6 | 63 & B;
        return n
    }(br = "AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA="),
    xr = Array.isArray(vr) ? function(A) {
        for (var e = A.length, t = [], r = 0; r < e; r += 4)
            t.push(A[r + 3] << 24 | A[r + 2] << 16 | A[r + 1] << 8 | A[r]);
        return t
    }(vr) : new Uint32Array(vr),
    Mr = Array.isArray(vr) ? function(A) {
        for (var e = A.length, t = [], r = 0; r < e; r += 2)
            t.push(A[r + 1] << 8 | A[r]);
        return t
    }(vr) : new Uint16Array(vr),
    br = fr(Mr, 12, xr[4] / 2),
    Dr = 2 === xr[5] ? fr(Mr, (24 + xr[4]) / 2) : (vr = xr,
    Mr = Math.ceil((24 + xr[4]) / 4),
    vr.slice ? vr.slice(Mr, Dr) : new Uint32Array(Array.prototype.slice.call(vr, Mr, Dr))),
    new Hr(xr[0],xr[1],xr[2],xr[3],br,Dr)), Rr = "×", Nr = function(A, e, t, r, B) {
        var n = "http://www.w3.org/2000/svg"
          , s = document.createElementNS(n, "svg")
          , n = document.createElementNS(n, "foreignObject");
        return s.setAttributeNS(null, "width", A.toString()),
        s.setAttributeNS(null, "height", e.toString()),
        n.setAttributeNS(null, "width", "100%"),
        n.setAttributeNS(null, "height", "100%"),
        n.setAttributeNS(null, "x", t.toString()),
        n.setAttributeNS(null, "y", r.toString()),
        n.setAttributeNS(null, "externalResourcesRequired", "true"),
        s.appendChild(n),
        n.appendChild(B),
        s
    }, Pr = function(r) {
        return new Promise(function(A, e) {
            var t = new Image;
            t.onload = function() {
                return A(t)
            }
            ,
            t.onerror = e,
            t.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent((new XMLSerializer).serializeToString(r))
        }
        )
    }, Xr = {
        get SUPPORT_RANGE_BOUNDS() {
            var A = function(A) {
                if (A.createRange) {
                    var e = A.createRange();
                    if (e.getBoundingClientRect) {
                        var t = A.createElement("boundtest");
                        t.style.height = "123px",
                        t.style.display = "block",
                        A.body.appendChild(t),
                        e.selectNode(t);
                        e = e.getBoundingClientRect(),
                        e = Math.round(e.height);
                        if (A.body.removeChild(t),
                        123 === e)
                            return !0
                    }
                }
                return !1
            }(document);
            return Object.defineProperty(Xr, "SUPPORT_RANGE_BOUNDS", {
                value: A
            }),
            A
        },
        get SUPPORT_WORD_BREAKING() {
            var A = Xr.SUPPORT_RANGE_BOUNDS && function(A) {
                var e = A.createElement("boundtest");
                e.style.width = "50px",
                e.style.display = "block",
                e.style.fontSize = "12px",
                e.style.letterSpacing = "0px",
                e.style.wordSpacing = "0px",
                A.body.appendChild(e);
                var r = A.createRange();
                e.innerHTML = "function" == typeof "".repeat ? "&#128104;".repeat(10) : "";
                var B = e.firstChild
                  , t = Q(B.data).map(function(A) {
                    return g(A)
                })
                  , n = 0
                  , s = {}
                  , t = t.every(function(A, e) {
                    r.setStart(B, n),
                    r.setEnd(B, n + A.length);
                    var t = r.getBoundingClientRect();
                    n += A.length;
                    A = t.x > s.x || t.y > s.y;
                    return s = t,
                    0 === e || A
                });
                return A.body.removeChild(e),
                t
            }(document);
            return Object.defineProperty(Xr, "SUPPORT_WORD_BREAKING", {
                value: A
            }),
            A
        },
        get SUPPORT_SVG_DRAWING() {
            var A = function(A) {
                var e = new Image
                  , t = A.createElement("canvas")
                  , A = t.getContext("2d");
                if (!A)
                    return !1;
                e.src = "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";
                try {
                    A.drawImage(e, 0, 0),
                    t.toDataURL()
                } catch (A) {
                    return !1
                }
                return !0
            }(document);
            return Object.defineProperty(Xr, "SUPPORT_SVG_DRAWING", {
                value: A
            }),
            A
        },
        get SUPPORT_FOREIGNOBJECT_DRAWING() {
            var A = "function" == typeof Array.from && "function" == typeof window.fetch ? function(t) {
                var A = t.createElement("canvas")
                  , r = 100;
                A.width = r,
                A.height = r;
                var B = A.getContext("2d");
                if (!B)
                    return Promise.reject(!1);
                B.fillStyle = "rgb(0, 255, 0)",
                B.fillRect(0, 0, r, r);
                var e = new Image
                  , n = A.toDataURL();
                e.src = n;
                e = Nr(r, r, 0, 0, e);
                return B.fillStyle = "red",
                B.fillRect(0, 0, r, r),
                Pr(e).then(function(A) {
                    B.drawImage(A, 0, 0);
                    var e = B.getImageData(0, 0, r, r).data;
                    B.fillStyle = "red",
                    B.fillRect(0, 0, r, r);
                    A = t.createElement("div");
                    return A.style.backgroundImage = "url(" + n + ")",
                    A.style.height = "100px",
                    Lr(e) ? Pr(Nr(r, r, 0, 0, A)) : Promise.reject(!1)
                }).then(function(A) {
                    return B.drawImage(A, 0, 0),
                    Lr(B.getImageData(0, 0, r, r).data)
                }).catch(function() {
                    return !1
                })
            }(document) : Promise.resolve(!1);
            return Object.defineProperty(Xr, "SUPPORT_FOREIGNOBJECT_DRAWING", {
                value: A
            }),
            A
        },
        get SUPPORT_CORS_IMAGES() {
            var A = void 0 !== (new Image).crossOrigin;
            return Object.defineProperty(Xr, "SUPPORT_CORS_IMAGES", {
                value: A
            }),
            A
        },
        get SUPPORT_RESPONSE_TYPE() {
            var A = "string" == typeof (new XMLHttpRequest).responseType;
            return Object.defineProperty(Xr, "SUPPORT_RESPONSE_TYPE", {
                value: A
            }),
            A
        },
        get SUPPORT_CORS_XHR() {
            var A = "withCredentials"in new XMLHttpRequest;
            return Object.defineProperty(Xr, "SUPPORT_CORS_XHR", {
                value: A
            }),
            A
        },
        get SUPPORT_NATIVE_TEXT_SEGMENTATION() {
            var A = !("undefined" == typeof Intl || !Intl.Segmenter);
            return Object.defineProperty(Xr, "SUPPORT_NATIVE_TEXT_SEGMENTATION", {
                value: A
            }),
            A
        }
    }, Jr = function(A, e) {
        this.text = A,
        this.bounds = e
    }, Yr = function(A, e) {
        var t = e.ownerDocument;
        if (t) {
            var r = t.createElement("html2canvaswrapper");
            r.appendChild(e.cloneNode(!0));
            t = e.parentNode;
            if (t) {
                t.replaceChild(r, e);
                A = f(A, r);
                return r.firstChild && t.replaceChild(r.firstChild, r),
                A
            }
        }
        return d.EMPTY
    }, Wr = function(A, e, t) {
        var r = A.ownerDocument;
        if (!r)
            throw new Error("Node has no owner document");
        r = r.createRange();
        return r.setStart(A, e),
        r.setEnd(A, e + t),
        r
    }, Zr = function(A) {
        if (Xr.SUPPORT_NATIVE_TEXT_SEGMENTATION) {
            var e = new Intl.Segmenter(void 0,{
                granularity: "grapheme"
            });
            return Array.from(e.segment(A)).map(function(A) {
                return A.segment
            })
        }
        return function(A) {
            for (var e, t = mr(A), r = []; !(e = t.next()).done; )
                e.value && r.push(e.value.slice());
            return r
        }(A)
    }, _r = function(A, e) {
        return 0 !== e.letterSpacing ? Zr(A) : function(A, e) {
            if (Xr.SUPPORT_NATIVE_TEXT_SEGMENTATION) {
                var t = new Intl.Segmenter(void 0,{
                    granularity: "word"
                });
                return Array.from(t.segment(A)).map(function(A) {
                    return A.segment
                })
            }
            return jr(A, e)
        }(A, e)
    }, qr = [32, 160, 4961, 65792, 65793, 4153, 4241], jr = function(A, e) {
        for (var t, r = wA(A, {
            lineBreak: e.lineBreak,
            wordBreak: "break-word" === e.overflowWrap ? "break-word" : e.wordBreak
        }), B = []; !(t = r.next()).done; )
            !function() {
                var A, e;
                t.value && (A = t.value.slice(),
                A = Q(A),
                e = "",
                A.forEach(function(A) {
                    -1 === qr.indexOf(A) ? e += g(A) : (e.length && B.push(e),
                    B.push(g(A)),
                    e = "")
                }),
                e.length && B.push(e))
            }();
        return B
    }, zr = function(A, e, t) {
        var B, n, s, o, i;
        this.text = $r(e.data, t.textTransform),
        this.textBounds = (B = A,
        A = this.text,
        s = e,
        A = _r(A, n = t),
        o = [],
        i = 0,
        A.forEach(function(A) {
            var e, t, r;
            n.textDecorationLine.length || 0 < A.trim().length ? Xr.SUPPORT_RANGE_BOUNDS ? 1 < (r = Wr(s, i, A.length).getClientRects()).length ? (e = Zr(A),
            t = 0,
            e.forEach(function(A) {
                o.push(new Jr(A,d.fromDOMRectList(B, Wr(s, t + i, A.length).getClientRects()))),
                t += A.length
            })) : o.push(new Jr(A,d.fromDOMRectList(B, r))) : (r = s.splitText(A.length),
            o.push(new Jr(A,Yr(B, s))),
            s = r) : Xr.SUPPORT_RANGE_BOUNDS || (s = s.splitText(A.length)),
            i += A.length
        }),
        o)
    }, $r = function(A, e) {
        switch (e) {
        case 1:
            return A.toLowerCase();
        case 3:
            return A.replace(AB, eB);
        case 2:
            return A.toUpperCase();
        default:
            return A
        }
    }, AB = /(^|\s|:|-|\(|\))([a-z])/g, eB = function(A, e, t) {
        return 0 < A.length ? e + t.toUpperCase() : A
    }, tB = (A(rB, Sr = ur),
    rB);
    function rB(A, e) {
        A = Sr.call(this, A, e) || this;
        return A.src = e.currentSrc || e.src,
        A.intrinsicWidth = e.naturalWidth,
        A.intrinsicHeight = e.naturalHeight,
        A.context.cache.addImage(A.src),
        A
    }
    var BB, nB = (A(sB, BB = ur),
    sB);
    function sB(A, e) {
        A = BB.call(this, A, e) || this;
        return A.canvas = e,
        A.intrinsicWidth = e.width,
        A.intrinsicHeight = e.height,
        A
    }
    var oB, iB = (A(QB, oB = ur),
    QB);
    function QB(A, e) {
        var t = oB.call(this, A, e) || this
          , r = new XMLSerializer
          , A = f(A, e);
        return e.setAttribute("width", A.width + "px"),
        e.setAttribute("height", A.height + "px"),
        t.svg = "data:image/svg+xml," + encodeURIComponent(r.serializeToString(e)),
        t.intrinsicWidth = e.width.baseVal.value,
        t.intrinsicHeight = e.height.baseVal.value,
        t.context.cache.addImage(t.svg),
        t
    }
    var cB, aB = (A(gB, cB = ur),
    gB);
    function gB(A, e) {
        A = cB.call(this, A, e) || this;
        return A.value = e.value,
        A
    }
    var wB, UB = (A(lB, wB = ur),
    lB);
    function lB(A, e) {
        A = wB.call(this, A, e) || this;
        return A.start = e.start,
        A.reversed = "boolean" == typeof e.reversed && !0 === e.reversed,
        A
    }
    var CB, uB = [{
        type: 15,
        flags: 0,
        unit: "px",
        number: 3
    }], FB = [{
        type: 16,
        flags: 0,
        number: 50
    }], hB = "checkbox", dB = "radio", fB = "password", HB = 707406591, pB = (A(EB, CB = ur),
    EB);
    function EB(A, e) {
        var t = CB.call(this, A, e) || this;
        switch (t.type = e.type.toLowerCase(),
        t.checked = e.checked,
        t.value = 0 === (e = (A = e).type === fB ? new Array(A.value.length + 1).join("•") : A.value).length ? A.placeholder || "" : e,
        t.type !== hB && t.type !== dB || (t.styles.backgroundColor = 3739148031,
        t.styles.borderTopColor = t.styles.borderRightColor = t.styles.borderBottomColor = t.styles.borderLeftColor = 2779096575,
        t.styles.borderTopWidth = t.styles.borderRightWidth = t.styles.borderBottomWidth = t.styles.borderLeftWidth = 1,
        t.styles.borderTopStyle = t.styles.borderRightStyle = t.styles.borderBottomStyle = t.styles.borderLeftStyle = 1,
        t.styles.backgroundClip = [0],
        t.styles.backgroundOrigin = [0],
        t.bounds = (e = t.bounds).width > e.height ? new d(e.left + (e.width - e.height) / 2,e.top,e.height,e.height) : e.width < e.height ? new d(e.left,e.top + (e.height - e.width) / 2,e.width,e.width) : e),
        t.type) {
        case hB:
            t.styles.borderTopRightRadius = t.styles.borderTopLeftRadius = t.styles.borderBottomRightRadius = t.styles.borderBottomLeftRadius = uB;
            break;
        case dB:
            t.styles.borderTopRightRadius = t.styles.borderTopLeftRadius = t.styles.borderBottomRightRadius = t.styles.borderBottomLeftRadius = FB
        }
        return t
    }
    var IB, yB = (A(KB, IB = ur),
    KB);
    function KB(A, e) {
        A = IB.call(this, A, e) || this,
        e = e.options[e.selectedIndex || 0];
        return A.value = e && e.text || "",
        A
    }
    var mB, LB = (A(bB, mB = ur),
    bB);
    function bB(A, e) {
        A = mB.call(this, A, e) || this;
        return A.value = e.value,
        A
    }
    var DB, vB = (A(xB, DB = ur),
    xB);
    function xB(A, e) {
        var t, r, B = DB.call(this, A, e) || this;
        B.src = e.src,
        B.width = parseInt(e.width, 10) || 0,
        B.height = parseInt(e.height, 10) || 0,
        B.backgroundColor = B.styles.backgroundColor;
        try {
            e.contentWindow && e.contentWindow.document && e.contentWindow.document.documentElement && (B.tree = kB(A, e.contentWindow.document.documentElement),
            t = e.contentWindow.document.documentElement ? fe(A, getComputedStyle(e.contentWindow.document.documentElement).backgroundColor) : Le.TRANSPARENT,
            r = e.contentWindow.document.body ? fe(A, getComputedStyle(e.contentWindow.document.body).backgroundColor) : Le.TRANSPARENT,
            B.backgroundColor = oe(t) ? oe(r) ? B.styles.backgroundColor : r : t)
        } catch (A) {}
        return B
    }
    function MB(A) {
        return "VIDEO" === A.tagName
    }
    function SB(A) {
        return "STYLE" === A.tagName
    }
    function TB(A) {
        return 0 < A.tagName.indexOf("-")
    }
    var GB = ["OL", "UL", "MENU"]
      , OB = function(e, A, t, r) {
        for (var B = A.firstChild; B; B = s) {
            var n, s = B.nextSibling;
            PB(B) && 0 < B.data.trim().length ? t.textNodes.push(new zr(e,B,t.styles)) : XB(B) && (rn(B) && B.assignedNodes ? B.assignedNodes().forEach(function(A) {
                return OB(e, A, t, r)
            }) : (n = VB(e, B)).styles.isVisible() && (RB(B, n, r) ? n.flags |= 4 : NB(n.styles) && (n.flags |= 2),
            -1 !== GB.indexOf(B.tagName) && (n.flags |= 8),
            t.elements.push(n),
            B.slot,
            B.shadowRoot ? OB(e, B.shadowRoot, n, r) : en(B) || qB(B) || tn(B) || OB(e, B, n, r)))
        }
    }
      , VB = function(A, e) {
        return new ($B(e) ? tB : zB(e) ? nB : qB(e) ? iB : WB(e) ? aB : ZB(e) ? UB : _B(e) ? pB : tn(e) ? yB : en(e) ? LB : An(e) ? vB : ur)(A,e)
    }
      , kB = function(A, e) {
        var t = VB(A, e);
        return t.flags |= 4,
        OB(A, e, t, t),
        t
    }
      , RB = function(A, e, t) {
        return e.styles.isPositionedWithZIndex() || e.styles.opacity < 1 || e.styles.isTransformed() || jB(A) && t.styles.isTransparent()
    }
      , NB = function(A) {
        return A.isPositioned() || A.isFloating()
    }
      , PB = function(A) {
        return A.nodeType === Node.TEXT_NODE
    }
      , XB = function(A) {
        return A.nodeType === Node.ELEMENT_NODE
    }
      , JB = function(A) {
        return XB(A) && void 0 !== A.style && !YB(A)
    }
      , YB = function(A) {
        return "object" == typeof A.className
    }
      , WB = function(A) {
        return "LI" === A.tagName
    }
      , ZB = function(A) {
        return "OL" === A.tagName
    }
      , _B = function(A) {
        return "INPUT" === A.tagName
    }
      , qB = function(A) {
        return "svg" === A.tagName
    }
      , jB = function(A) {
        return "BODY" === A.tagName
    }
      , zB = function(A) {
        return "CANVAS" === A.tagName
    }
      , $B = function(A) {
        return "IMG" === A.tagName
    }
      , An = function(A) {
        return "IFRAME" === A.tagName
    }
      , en = function(A) {
        return "TEXTAREA" === A.tagName
    }
      , tn = function(A) {
        return "SELECT" === A.tagName
    }
      , rn = function(A) {
        return "SLOT" === A.tagName
    }
      , Bn = (nn.prototype.getCounterValue = function(A) {
        A = this.counters[A];
        return A && A.length ? A[A.length - 1] : 1
    }
    ,
    nn.prototype.getCounterValues = function(A) {
        A = this.counters[A];
        return A || []
    }
    ,
    nn.prototype.pop = function(A) {
        var e = this;
        A.forEach(function(A) {
            return e.counters[A].pop()
        })
    }
    ,
    nn.prototype.parse = function(A) {
        var t = this
          , e = A.counterIncrement
          , A = A.counterReset
          , r = !0;
        null !== e && e.forEach(function(A) {
            var e = t.counters[A.counter];
            e && 0 !== A.increment && (r = !1,
            e.length || e.push(1),
            e[Math.max(0, e.length - 1)] += A.increment)
        });
        var B = [];
        return r && A.forEach(function(A) {
            var e = t.counters[A.counter];
            B.push(A.counter),
            (e = e || (t.counters[A.counter] = [])).push(A.reset)
        }),
        B
    }
    ,
    nn);
    function nn() {
        this.counters = {}
    }
    function sn(r, A, e, B, t, n) {
        return r < A || e < r ? Fn(r, t, 0 < n.length) : B.integers.reduce(function(A, e, t) {
            for (; e <= r; )
                r -= e,
                A += B.values[t];
            return A
        }, "") + n
    }
    function on(A, e, t, r) {
        for (var B = ""; t || A--,
        B = r(A) + B,
        e <= (A /= e) * e; )
            ;
        return B
    }
    function Qn(A, e, t, r, B) {
        var n = t - e + 1;
        return (A < 0 ? "-" : "") + (on(Math.abs(A), n, r, function(A) {
            return g(Math.floor(A % n) + e)
        }) + B)
    }
    function cn(A, e, t) {
        void 0 === t && (t = ". ");
        var r = e.length;
        return on(Math.abs(A), r, !1, function(A) {
            return e[Math.floor(A % r)]
        }) + t
    }
    function an(A, e, t, r, B, n) {
        if (A < -9999 || 9999 < A)
            return Fn(A, 4, 0 < B.length);
        var s = Math.abs(A)
          , o = B;
        if (0 === s)
            return e[0] + o;
        for (var i = 0; 0 < s && i <= 4; i++) {
            var Q = s % 10;
            0 == Q && Pt(n, 1) && "" !== o ? o = e[Q] + o : 1 < Q || 1 == Q && 0 === i || 1 == Q && 1 === i && Pt(n, 2) || 1 == Q && 1 === i && Pt(n, 4) && 100 < A || 1 == Q && 1 < i && Pt(n, 8) ? o = e[Q] + (0 < i ? t[i - 1] : "") + o : 1 == Q && 0 < i && (o = t[i - 1] + o),
            s = Math.floor(s / 10)
        }
        return (A < 0 ? r : "") + o
    }
    var gn, wn = {
        integers: [1e3, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],
        values: ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"]
    }, Un = {
        integers: [9e3, 8e3, 7e3, 6e3, 5e3, 4e3, 3e3, 2e3, 1e3, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1],
        values: ["Ք", "Փ", "Ւ", "Ց", "Ր", "Տ", "Վ", "Ս", "Ռ", "Ջ", "Պ", "Չ", "Ո", "Շ", "Ն", "Յ", "Մ", "Ճ", "Ղ", "Ձ", "Հ", "Կ", "Ծ", "Խ", "Լ", "Ի", "Ժ", "Թ", "Ը", "Է", "Զ", "Ե", "Դ", "Գ", "Բ", "Ա"]
    }, ln = {
        integers: [1e4, 9e3, 8e3, 7e3, 6e3, 5e3, 4e3, 3e3, 2e3, 1e3, 400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20, 19, 18, 17, 16, 15, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1],
        values: ["י׳", "ט׳", "ח׳", "ז׳", "ו׳", "ה׳", "ד׳", "ג׳", "ב׳", "א׳", "ת", "ש", "ר", "ק", "צ", "פ", "ע", "ס", "נ", "מ", "ל", "כ", "יט", "יח", "יז", "טז", "טו", "י", "ט", "ח", "ז", "ו", "ה", "ד", "ג", "ב", "א"]
    }, Cn = {
        integers: [1e4, 9e3, 8e3, 7e3, 6e3, 5e3, 4e3, 3e3, 2e3, 1e3, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1],
        values: ["ჵ", "ჰ", "ჯ", "ჴ", "ხ", "ჭ", "წ", "ძ", "ც", "ჩ", "შ", "ყ", "ღ", "ქ", "ფ", "ჳ", "ტ", "ს", "რ", "ჟ", "პ", "ო", "ჲ", "ნ", "მ", "ლ", "კ", "ი", "თ", "ჱ", "ზ", "ვ", "ე", "დ", "გ", "ბ", "ა"]
    }, un = "마이너스", Fn = function(A, e, t) {
        var r = t ? ". " : ""
          , B = t ? "、" : ""
          , n = t ? ", " : ""
          , s = t ? " " : "";
        switch (e) {
        case 0:
            return "•" + s;
        case 1:
            return "◦" + s;
        case 2:
            return "◾" + s;
        case 5:
            var o = Qn(A, 48, 57, !0, r);
            return o.length < 4 ? "0" + o : o;
        case 4:
            return cn(A, "〇一二三四五六七八九", B);
        case 6:
            return sn(A, 1, 3999, wn, 3, r).toLowerCase();
        case 7:
            return sn(A, 1, 3999, wn, 3, r);
        case 8:
            return Qn(A, 945, 969, !1, r);
        case 9:
            return Qn(A, 97, 122, !1, r);
        case 10:
            return Qn(A, 65, 90, !1, r);
        case 11:
            return Qn(A, 1632, 1641, !0, r);
        case 12:
        case 49:
            return sn(A, 1, 9999, Un, 3, r);
        case 35:
            return sn(A, 1, 9999, Un, 3, r).toLowerCase();
        case 13:
            return Qn(A, 2534, 2543, !0, r);
        case 14:
        case 30:
            return Qn(A, 6112, 6121, !0, r);
        case 15:
            return cn(A, "子丑寅卯辰巳午未申酉戌亥", B);
        case 16:
            return cn(A, "甲乙丙丁戊己庚辛壬癸", B);
        case 17:
        case 48:
            return an(A, "零一二三四五六七八九", "十百千萬", "負", B, 14);
        case 47:
            return an(A, "零壹貳參肆伍陸柒捌玖", "拾佰仟萬", "負", B, 15);
        case 42:
            return an(A, "零一二三四五六七八九", "十百千萬", "负", B, 14);
        case 41:
            return an(A, "零壹贰叁肆伍陆柒捌玖", "拾佰仟萬", "负", B, 15);
        case 26:
            return an(A, "〇一二三四五六七八九", "十百千万", "マイナス", B, 0);
        case 25:
            return an(A, "零壱弐参四伍六七八九", "拾百千万", "マイナス", B, 7);
        case 31:
            return an(A, "영일이삼사오육칠팔구", "십백천만", un, n, 7);
        case 33:
            return an(A, "零一二三四五六七八九", "十百千萬", un, n, 0);
        case 32:
            return an(A, "零壹貳參四五六七八九", "拾百千", un, n, 7);
        case 18:
            return Qn(A, 2406, 2415, !0, r);
        case 20:
            return sn(A, 1, 19999, Cn, 3, r);
        case 21:
            return Qn(A, 2790, 2799, !0, r);
        case 22:
            return Qn(A, 2662, 2671, !0, r);
        case 22:
            return sn(A, 1, 10999, ln, 3, r);
        case 23:
            return cn(A, "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");
        case 24:
            return cn(A, "いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");
        case 27:
            return Qn(A, 3302, 3311, !0, r);
        case 28:
            return cn(A, "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン", B);
        case 29:
            return cn(A, "イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス", B);
        case 34:
            return Qn(A, 3792, 3801, !0, r);
        case 37:
            return Qn(A, 6160, 6169, !0, r);
        case 38:
            return Qn(A, 4160, 4169, !0, r);
        case 39:
            return Qn(A, 2918, 2927, !0, r);
        case 40:
            return Qn(A, 1776, 1785, !0, r);
        case 43:
            return Qn(A, 3046, 3055, !0, r);
        case 44:
            return Qn(A, 3174, 3183, !0, r);
        case 45:
            return Qn(A, 3664, 3673, !0, r);
        case 46:
            return Qn(A, 3872, 3881, !0, r);
        default:
            return Qn(A, 48, 57, !0, r)
        }
    }, hn = "data-html2canvas-ignore", dn = (fn.prototype.toIFrame = function(A, r) {
        var e = this
          , B = pn(A, r);
        if (!B.contentWindow)
            return Promise.reject("Unable to find iframe window");
        var t = A.defaultView.pageXOffset
          , n = A.defaultView.pageYOffset
          , s = B.contentWindow
          , o = s.document
          , A = In(B).then(function() {
            return a(e, void 0, void 0, function() {
                var e, t;
                return H(this, function(A) {
                    switch (A.label) {
                    case 0:
                        return this.scrolledElements.forEach(bn),
                        s && (s.scrollTo(r.left, r.top),
                        !/(iPad|iPhone|iPod)/g.test(navigator.userAgent) || s.scrollY === r.top && s.scrollX === r.left || (this.context.logger.warn("Unable to restore scroll position for cloned document"),
                        this.context.windowBounds = this.context.windowBounds.add(s.scrollX - r.left, s.scrollY - r.top, 0, 0))),
                        e = this.options.onclone,
                        void 0 === (t = this.clonedReferenceElement) ? [2, Promise.reject("Error finding the " + this.referenceElement.nodeName + " in the cloned document")] : o.fonts && o.fonts.ready ? [4, o.fonts.ready] : [3, 2];
                    case 1:
                        A.sent(),
                        A.label = 2;
                    case 2:
                        return /(AppleWebKit)/g.test(navigator.userAgent) ? [4, En(o)] : [3, 4];
                    case 3:
                        A.sent(),
                        A.label = 4;
                    case 4:
                        return "function" == typeof e ? [2, Promise.resolve().then(function() {
                            return e(o, t)
                        }).then(function() {
                            return B
                        })] : [2, B]
                    }
                })
            })
        });
        return o.open(),
        o.write(mn(document.doctype) + "<html></html>"),
        Ln(this.referenceElement.ownerDocument, t, n),
        o.replaceChild(o.adoptNode(this.documentElement), o.documentElement),
        o.close(),
        A
    }
    ,
    fn.prototype.createElementClone = function(A) {
        if (Cr(A, 2),
        zB(A))
            return this.createCanvasClone(A);
        if (MB(A))
            return this.createVideoClone(A);
        if (SB(A))
            return this.createStyleClone(A);
        var e = A.cloneNode(!1);
        return $B(e) && ($B(A) && A.currentSrc && A.currentSrc !== A.src && (e.src = A.currentSrc,
        e.srcset = ""),
        "lazy" === e.loading && (e.loading = "eager")),
        TB(e) ? this.createCustomElementClone(e) : e
    }
    ,
    fn.prototype.createCustomElementClone = function(A) {
        var e = document.createElement("html2canvascustomelement");
        return Kn(A.style, e),
        e
    }
    ,
    fn.prototype.createStyleClone = function(A) {
        try {
            var e = A.sheet;
            if (e && e.cssRules) {
                var t = [].slice.call(e.cssRules, 0).reduce(function(A, e) {
                    return e && "string" == typeof e.cssText ? A + e.cssText : A
                }, "")
                  , r = A.cloneNode(!1);
                return r.textContent = t,
                r
            }
        } catch (A) {
            if (this.context.logger.error("Unable to access cssRules property", A),
            "SecurityError" !== A.name)
                throw A
        }
        return A.cloneNode(!1)
    }
    ,
    fn.prototype.createCanvasClone = function(e) {
        var A;
        if (this.options.inlineImages && e.ownerDocument) {
            var t = e.ownerDocument.createElement("img");
            try {
                return t.src = e.toDataURL(),
                t
            } catch (A) {
                this.context.logger.info("Unable to inline canvas contents, canvas is tainted", e)
            }
        }
        t = e.cloneNode(!1);
        try {
            t.width = e.width,
            t.height = e.height;
            var r, B, n = e.getContext("2d"), s = t.getContext("2d");
            return s && (!this.options.allowTaint && n ? s.putImageData(n.getImageData(0, 0, e.width, e.height), 0, 0) : (!(r = null !== (A = e.getContext("webgl2")) && void 0 !== A ? A : e.getContext("webgl")) || !1 === (null == (B = r.getContextAttributes()) ? void 0 : B.preserveDrawingBuffer) && this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false", e),
            s.drawImage(e, 0, 0))),
            t
        } catch (A) {
            this.context.logger.info("Unable to clone canvas as it is tainted", e)
        }
        return t
    }
    ,
    fn.prototype.createVideoClone = function(e) {
        var A = e.ownerDocument.createElement("canvas");
        A.width = e.offsetWidth,
        A.height = e.offsetHeight;
        var t = A.getContext("2d");
        try {
            return t && (t.drawImage(e, 0, 0, A.width, A.height),
            this.options.allowTaint || t.getImageData(0, 0, A.width, A.height)),
            A
        } catch (A) {
            this.context.logger.info("Unable to clone video as it is tainted", e)
        }
        A = e.ownerDocument.createElement("canvas");
        return A.width = e.offsetWidth,
        A.height = e.offsetHeight,
        A
    }
    ,
    fn.prototype.appendChildNode = function(A, e, t) {
        XB(e) && ("SCRIPT" === e.tagName || e.hasAttribute(hn) || "function" == typeof this.options.ignoreElements && this.options.ignoreElements(e)) || this.options.copyStyles && XB(e) && SB(e) || A.appendChild(this.cloneNode(e, t))
    }
    ,
    fn.prototype.cloneChildNodes = function(A, e, t) {
        for (var r, B = this, n = (A.shadowRoot || A).firstChild; n; n = n.nextSibling)
            XB(n) && rn(n) && "function" == typeof n.assignedNodes ? (r = n.assignedNodes()).length && r.forEach(function(A) {
                return B.appendChildNode(e, A, t)
            }) : this.appendChildNode(e, n, t)
    }
    ,
    fn.prototype.cloneNode = function(A, e) {
        if (PB(A))
            return document.createTextNode(A.data);
        if (!A.ownerDocument)
            return A.cloneNode(!1);
        var t = A.ownerDocument.defaultView;
        if (t && XB(A) && (JB(A) || YB(A))) {
            var r = this.createElementClone(A);
            r.style.transitionProperty = "none";
            var B = t.getComputedStyle(A)
              , n = t.getComputedStyle(A, ":before")
              , s = t.getComputedStyle(A, ":after");
            this.referenceElement === A && JB(r) && (this.clonedReferenceElement = r),
            jB(r) && Mn(r);
            t = this.counters.parse(new Ur(this.context,B)),
            n = this.resolvePseudoContent(A, r, n, gn.BEFORE);
            TB(A) && (e = !0),
            MB(A) || this.cloneChildNodes(A, r, e),
            n && r.insertBefore(n, r.firstChild);
            s = this.resolvePseudoContent(A, r, s, gn.AFTER);
            return s && r.appendChild(s),
            this.counters.pop(t),
            (B && (this.options.copyStyles || YB(A)) && !An(A) || e) && Kn(B, r),
            0 === A.scrollTop && 0 === A.scrollLeft || this.scrolledElements.push([r, A.scrollLeft, A.scrollTop]),
            (en(A) || tn(A)) && (en(r) || tn(r)) && (r.value = A.value),
            r
        }
        return A.cloneNode(!1)
    }
    ,
    fn.prototype.resolvePseudoContent = function(o, A, e, t) {
        var i = this;
        if (e) {
            var r = e.content
              , Q = A.ownerDocument;
            if (Q && r && "none" !== r && "-moz-alt-content" !== r && "none" !== e.display) {
                this.counters.parse(new Ur(this.context,e));
                var c = new wr(this.context,e)
                  , a = Q.createElement("html2canvaspseudoelement");
                Kn(e, a),
                c.content.forEach(function(A) {
                    if (0 === A.type)
                        a.appendChild(Q.createTextNode(A.value));
                    else if (22 === A.type) {
                        var e = Q.createElement("img");
                        e.src = A.value,
                        e.style.opacity = "1",
                        a.appendChild(e)
                    } else if (18 === A.type) {
                        var t, r, B, n, s;
                        "attr" === A.name ? (e = A.values.filter(_A)).length && a.appendChild(Q.createTextNode(o.getAttribute(e[0].value) || "")) : "counter" === A.name ? (B = (r = A.values.filter($A))[0],
                        r = r[1],
                        B && _A(B) && (t = i.counters.getCounterValue(B.value),
                        s = r && _A(r) ? pt.parse(i.context, r.value) : 3,
                        a.appendChild(Q.createTextNode(Fn(t, s, !1))))) : "counters" === A.name && (B = (t = A.values.filter($A))[0],
                        s = t[1],
                        r = t[2],
                        B && _A(B) && (B = i.counters.getCounterValues(B.value),
                        n = r && _A(r) ? pt.parse(i.context, r.value) : 3,
                        s = s && 0 === s.type ? s.value : "",
                        s = B.map(function(A) {
                            return Fn(A, n, !1)
                        }).join(s),
                        a.appendChild(Q.createTextNode(s))))
                    } else if (20 === A.type)
                        switch (A.value) {
                        case "open-quote":
                            a.appendChild(Q.createTextNode(Xt(c.quotes, i.quoteDepth++, !0)));
                            break;
                        case "close-quote":
                            a.appendChild(Q.createTextNode(Xt(c.quotes, --i.quoteDepth, !1)));
                            break;
                        default:
                            a.appendChild(Q.createTextNode(A.value))
                        }
                }),
                a.className = Dn + " " + vn;
                t = t === gn.BEFORE ? " " + Dn : " " + vn;
                return YB(A) ? A.className.baseValue += t : A.className += t,
                a
            }
        }
    }
    ,
    fn.destroy = function(A) {
        return !!A.parentNode && (A.parentNode.removeChild(A),
        !0)
    }
    ,
    fn);
    function fn(A, e, t) {
        if (this.context = A,
        this.options = t,
        this.scrolledElements = [],
        this.referenceElement = e,
        this.counters = new Bn,
        this.quoteDepth = 0,
        !e.ownerDocument)
            throw new Error("Cloned element does not have an owner document");
        this.documentElement = this.cloneNode(e.ownerDocument.documentElement, !1)
    }
    (he = gn = gn || {})[he.BEFORE = 0] = "BEFORE",
    he[he.AFTER = 1] = "AFTER";
    function Hn(e) {
        return new Promise(function(A) {
            !e.complete && e.src ? (e.onload = A,
            e.onerror = A) : A()
        }
        )
    }
    var pn = function(A, e) {
        var t = A.createElement("iframe");
        return t.className = "html2canvas-container",
        t.style.visibility = "hidden",
        t.style.position = "fixed",
        t.style.left = "-10000px",
        t.style.top = "0px",
        t.style.border = "0",
        t.width = e.width.toString(),
        t.height = e.height.toString(),
        t.scrolling = "no",
        t.setAttribute(hn, "true"),
        A.body.appendChild(t),
        t
    }
      , En = function(A) {
        return Promise.all([].slice.call(A.images, 0).map(Hn))
    }
      , In = function(B) {
        return new Promise(function(e, A) {
            var t = B.contentWindow;
            if (!t)
                return A("No window assigned for iframe");
            var r = t.document;
            t.onload = B.onload = function() {
                t.onload = B.onload = null;
                var A = setInterval(function() {
                    0 < r.body.childNodes.length && "complete" === r.readyState && (clearInterval(A),
                    e(B))
                }, 50)
            }
        }
        )
    }
      , yn = ["all", "d", "content"]
      , Kn = function(A, e) {
        for (var t = A.length - 1; 0 <= t; t--) {
            var r = A.item(t);
            -1 === yn.indexOf(r) && e.style.setProperty(r, A.getPropertyValue(r))
        }
        return e
    }
      , mn = function(A) {
        var e = "";
        return A && (e += "<!DOCTYPE ",
        A.name && (e += A.name),
        A.internalSubset && (e += A.internalSubset),
        A.publicId && (e += '"' + A.publicId + '"'),
        A.systemId && (e += '"' + A.systemId + '"'),
        e += ">"),
        e
    }
      , Ln = function(A, e, t) {
        A && A.defaultView && (e !== A.defaultView.pageXOffset || t !== A.defaultView.pageYOffset) && A.defaultView.scrollTo(e, t)
    }
      , bn = function(A) {
        var e = A[0]
          , t = A[1]
          , A = A[2];
        e.scrollLeft = t,
        e.scrollTop = A
    }
      , Dn = "___html2canvas___pseudoelement_before"
      , vn = "___html2canvas___pseudoelement_after"
      , xn = '{\n    content: "" !important;\n    display: none !important;\n}'
      , Mn = function(A) {
        Sn(A, "." + Dn + ":before" + xn + "\n         ." + vn + ":after" + xn)
    }
      , Sn = function(A, e) {
        var t = A.ownerDocument;
        t && ((t = t.createElement("style")).textContent = e,
        A.appendChild(t))
    }
      , Tn = (Gn.getOrigin = function(A) {
        var e = Gn._link;
        return e ? (e.href = A,
        e.href = e.href,
        e.protocol + e.hostname + e.port) : "about:blank"
    }
    ,
    Gn.isSameOrigin = function(A) {
        return Gn.getOrigin(A) === Gn._origin
    }
    ,
    Gn.setContext = function(A) {
        Gn._link = A.document.createElement("a"),
        Gn._origin = Gn.getOrigin(A.location.href)
    }
    ,
    Gn._origin = "about:blank",
    Gn);
    function Gn() {}
    var On = (Vn.prototype.addImage = function(A) {
        var e = Promise.resolve();
        return this.has(A) || (Yn(A) || Pn(A)) && (this._cache[A] = this.loadImage(A)).catch(function() {}),
        e
    }
    ,
    Vn.prototype.match = function(A) {
        return this._cache[A]
    }
    ,
    Vn.prototype.loadImage = function(s) {
        return a(this, void 0, void 0, function() {
            var e, r, t, B, n = this;
            return H(this, function(A) {
                switch (A.label) {
                case 0:
                    return (e = Tn.isSameOrigin(s),
                    r = !Xn(s) && !0 === this._options.useCORS && Xr.SUPPORT_CORS_IMAGES && !e,
                    t = !Xn(s) && !e && !Yn(s) && "string" == typeof this._options.proxy && Xr.SUPPORT_CORS_XHR && !r,
                    e || !1 !== this._options.allowTaint || Xn(s) || Yn(s) || t || r) ? (B = s,
                    t ? [4, this.proxy(B)] : [3, 2]) : [2];
                case 1:
                    B = A.sent(),
                    A.label = 2;
                case 2:
                    return this.context.logger.debug("Added image " + s.substring(0, 256)),
                    [4, new Promise(function(A, e) {
                        var t = new Image;
                        t.onload = function() {
                            return A(t)
                        }
                        ,
                        t.onerror = e,
                        (Jn(B) || r) && (t.crossOrigin = "anonymous"),
                        t.src = B,
                        !0 === t.complete && setTimeout(function() {
                            return A(t)
                        }, 500),
                        0 < n._options.imageTimeout && setTimeout(function() {
                            return e("Timed out (" + n._options.imageTimeout + "ms) loading image")
                        }, n._options.imageTimeout)
                    }
                    )];
                case 3:
                    return [2, A.sent()]
                }
            })
        })
    }
    ,
    Vn.prototype.has = function(A) {
        return void 0 !== this._cache[A]
    }
    ,
    Vn.prototype.keys = function() {
        return Promise.resolve(Object.keys(this._cache))
    }
    ,
    Vn.prototype.proxy = function(s) {
        var o = this
          , i = this._options.proxy;
        if (!i)
            throw new Error("No proxy defined");
        var Q = s.substring(0, 256);
        return new Promise(function(e, t) {
            var r = Xr.SUPPORT_RESPONSE_TYPE ? "blob" : "text"
              , B = new XMLHttpRequest;
            B.onload = function() {
                var A;
                200 === B.status ? "text" == r ? e(B.response) : ((A = new FileReader).addEventListener("load", function() {
                    return e(A.result)
                }, !1),
                A.addEventListener("error", function(A) {
                    return t(A)
                }, !1),
                A.readAsDataURL(B.response)) : t("Failed to proxy resource " + Q + " with status code " + B.status)
            }
            ,
            B.onerror = t;
            var A, n = -1 < i.indexOf("?") ? "&" : "?";
            B.open("GET", i + n + "url=" + encodeURIComponent(s) + "&responseType=" + r),
            "text" != r && B instanceof XMLHttpRequest && (B.responseType = r),
            o._options.imageTimeout && (A = o._options.imageTimeout,
            B.timeout = A,
            B.ontimeout = function() {
                return t("Timed out (" + A + "ms) proxying " + Q)
            }
            ),
            B.send()
        }
        )
    }
    ,
    Vn);
    function Vn(A, e) {
        this.context = A,
        this._options = e,
        this._cache = {}
    }
    var kn = /^data:image\/svg\+xml/i
      , Rn = /^data:image\/.*;base64,/i
      , Nn = /^data:image\/.*/i
      , Pn = function(A) {
        return Xr.SUPPORT_SVG_DRAWING || !Wn(A)
    }
      , Xn = function(A) {
        return Nn.test(A)
    }
      , Jn = function(A) {
        return Rn.test(A)
    }
      , Yn = function(A) {
        return "blob" === A.substr(0, 4)
    }
      , Wn = function(A) {
        return "svg" === A.substr(-3).toLowerCase() || kn.test(A)
    }
      , Zn = (_n.prototype.add = function(A, e) {
        return new _n(this.x + A,this.y + e)
    }
    ,
    _n);
    function _n(A, e) {
        this.type = 0,
        this.x = A,
        this.y = e
    }
    function qn(A, e, t) {
        return new Zn(A.x + (e.x - A.x) * t,A.y + (e.y - A.y) * t)
    }
    var jn = (zn.prototype.subdivide = function(A, e) {
        var t = qn(this.start, this.startControl, A)
          , r = qn(this.startControl, this.endControl, A)
          , B = qn(this.endControl, this.end, A)
          , n = qn(t, r, A)
          , r = qn(r, B, A)
          , A = qn(n, r, A);
        return e ? new zn(this.start,t,n,A) : new zn(A,r,B,this.end)
    }
    ,
    zn.prototype.add = function(A, e) {
        return new zn(this.start.add(A, e),this.startControl.add(A, e),this.endControl.add(A, e),this.end.add(A, e))
    }
    ,
    zn.prototype.reverse = function() {
        return new zn(this.end,this.endControl,this.startControl,this.start)
    }
    ,
    zn);
    function zn(A, e, t, r) {
        this.type = 1,
        this.start = A,
        this.startControl = e,
        this.endControl = t,
        this.end = r
    }
    function $n(A) {
        return 1 === A.type
    }
    var As, es = function(A) {
        var e = A.styles
          , t = A.bounds
          , r = (C = Be(e.borderTopLeftRadius, t.width, t.height))[0]
          , B = C[1]
          , n = (u = Be(e.borderTopRightRadius, t.width, t.height))[0]
          , s = u[1]
          , o = (F = Be(e.borderBottomRightRadius, t.width, t.height))[0]
          , i = F[1]
          , Q = (h = Be(e.borderBottomLeftRadius, t.width, t.height))[0]
          , c = h[1];
        (d = []).push((r + n) / t.width),
        d.push((Q + o) / t.width),
        d.push((B + c) / t.height),
        d.push((s + i) / t.height),
        1 < (f = Math.max.apply(Math, d)) && (r /= f,
        B /= f,
        n /= f,
        s /= f,
        o /= f,
        i /= f,
        Q /= f,
        c /= f);
        var a = t.width - n
          , g = t.height - i
          , w = t.width - o
          , U = t.height - c
          , l = e.borderTopWidth
          , C = e.borderRightWidth
          , u = e.borderBottomWidth
          , F = e.borderLeftWidth
          , h = Ue(e.paddingTop, A.bounds.width)
          , d = Ue(e.paddingRight, A.bounds.width)
          , f = Ue(e.paddingBottom, A.bounds.width)
          , A = Ue(e.paddingLeft, A.bounds.width);
        this.topLeftBorderDoubleOuterBox = 0 < r || 0 < B ? ss(t.left + F / 3, t.top + l / 3, r - F / 3, B - l / 3, As.TOP_LEFT) : new Zn(t.left + F / 3,t.top + l / 3),
        this.topRightBorderDoubleOuterBox = 0 < r || 0 < B ? ss(t.left + a, t.top + l / 3, n - C / 3, s - l / 3, As.TOP_RIGHT) : new Zn(t.left + t.width - C / 3,t.top + l / 3),
        this.bottomRightBorderDoubleOuterBox = 0 < o || 0 < i ? ss(t.left + w, t.top + g, o - C / 3, i - u / 3, As.BOTTOM_RIGHT) : new Zn(t.left + t.width - C / 3,t.top + t.height - u / 3),
        this.bottomLeftBorderDoubleOuterBox = 0 < Q || 0 < c ? ss(t.left + F / 3, t.top + U, Q - F / 3, c - u / 3, As.BOTTOM_LEFT) : new Zn(t.left + F / 3,t.top + t.height - u / 3),
        this.topLeftBorderDoubleInnerBox = 0 < r || 0 < B ? ss(t.left + 2 * F / 3, t.top + 2 * l / 3, r - 2 * F / 3, B - 2 * l / 3, As.TOP_LEFT) : new Zn(t.left + 2 * F / 3,t.top + 2 * l / 3),
        this.topRightBorderDoubleInnerBox = 0 < r || 0 < B ? ss(t.left + a, t.top + 2 * l / 3, n - 2 * C / 3, s - 2 * l / 3, As.TOP_RIGHT) : new Zn(t.left + t.width - 2 * C / 3,t.top + 2 * l / 3),
        this.bottomRightBorderDoubleInnerBox = 0 < o || 0 < i ? ss(t.left + w, t.top + g, o - 2 * C / 3, i - 2 * u / 3, As.BOTTOM_RIGHT) : new Zn(t.left + t.width - 2 * C / 3,t.top + t.height - 2 * u / 3),
        this.bottomLeftBorderDoubleInnerBox = 0 < Q || 0 < c ? ss(t.left + 2 * F / 3, t.top + U, Q - 2 * F / 3, c - 2 * u / 3, As.BOTTOM_LEFT) : new Zn(t.left + 2 * F / 3,t.top + t.height - 2 * u / 3),
        this.topLeftBorderStroke = 0 < r || 0 < B ? ss(t.left + F / 2, t.top + l / 2, r - F / 2, B - l / 2, As.TOP_LEFT) : new Zn(t.left + F / 2,t.top + l / 2),
        this.topRightBorderStroke = 0 < r || 0 < B ? ss(t.left + a, t.top + l / 2, n - C / 2, s - l / 2, As.TOP_RIGHT) : new Zn(t.left + t.width - C / 2,t.top + l / 2),
        this.bottomRightBorderStroke = 0 < o || 0 < i ? ss(t.left + w, t.top + g, o - C / 2, i - u / 2, As.BOTTOM_RIGHT) : new Zn(t.left + t.width - C / 2,t.top + t.height - u / 2),
        this.bottomLeftBorderStroke = 0 < Q || 0 < c ? ss(t.left + F / 2, t.top + U, Q - F / 2, c - u / 2, As.BOTTOM_LEFT) : new Zn(t.left + F / 2,t.top + t.height - u / 2),
        this.topLeftBorderBox = 0 < r || 0 < B ? ss(t.left, t.top, r, B, As.TOP_LEFT) : new Zn(t.left,t.top),
        this.topRightBorderBox = 0 < n || 0 < s ? ss(t.left + a, t.top, n, s, As.TOP_RIGHT) : new Zn(t.left + t.width,t.top),
        this.bottomRightBorderBox = 0 < o || 0 < i ? ss(t.left + w, t.top + g, o, i, As.BOTTOM_RIGHT) : new Zn(t.left + t.width,t.top + t.height),
        this.bottomLeftBorderBox = 0 < Q || 0 < c ? ss(t.left, t.top + U, Q, c, As.BOTTOM_LEFT) : new Zn(t.left,t.top + t.height),
        this.topLeftPaddingBox = 0 < r || 0 < B ? ss(t.left + F, t.top + l, Math.max(0, r - F), Math.max(0, B - l), As.TOP_LEFT) : new Zn(t.left + F,t.top + l),
        this.topRightPaddingBox = 0 < n || 0 < s ? ss(t.left + Math.min(a, t.width - C), t.top + l, a > t.width + C ? 0 : Math.max(0, n - C), Math.max(0, s - l), As.TOP_RIGHT) : new Zn(t.left + t.width - C,t.top + l),
        this.bottomRightPaddingBox = 0 < o || 0 < i ? ss(t.left + Math.min(w, t.width - F), t.top + Math.min(g, t.height - u), Math.max(0, o - C), Math.max(0, i - u), As.BOTTOM_RIGHT) : new Zn(t.left + t.width - C,t.top + t.height - u),
        this.bottomLeftPaddingBox = 0 < Q || 0 < c ? ss(t.left + F, t.top + Math.min(U, t.height - u), Math.max(0, Q - F), Math.max(0, c - u), As.BOTTOM_LEFT) : new Zn(t.left + F,t.top + t.height - u),
        this.topLeftContentBox = 0 < r || 0 < B ? ss(t.left + F + A, t.top + l + h, Math.max(0, r - (F + A)), Math.max(0, B - (l + h)), As.TOP_LEFT) : new Zn(t.left + F + A,t.top + l + h),
        this.topRightContentBox = 0 < n || 0 < s ? ss(t.left + Math.min(a, t.width + F + A), t.top + l + h, a > t.width + F + A ? 0 : n - F + A, s - (l + h), As.TOP_RIGHT) : new Zn(t.left + t.width - (C + d),t.top + l + h),
        this.bottomRightContentBox = 0 < o || 0 < i ? ss(t.left + Math.min(w, t.width - (F + A)), t.top + Math.min(g, t.height + l + h), Math.max(0, o - (C + d)), i - (u + f), As.BOTTOM_RIGHT) : new Zn(t.left + t.width - (C + d),t.top + t.height - (u + f)),
        this.bottomLeftContentBox = 0 < Q || 0 < c ? ss(t.left + F + A, t.top + U, Math.max(0, Q - (F + A)), c - (u + f), As.BOTTOM_LEFT) : new Zn(t.left + F + A,t.top + t.height - (u + f))
    };
    (he = As = As || {})[he.TOP_LEFT = 0] = "TOP_LEFT",
    he[he.TOP_RIGHT = 1] = "TOP_RIGHT",
    he[he.BOTTOM_RIGHT = 2] = "BOTTOM_RIGHT",
    he[he.BOTTOM_LEFT = 3] = "BOTTOM_LEFT";
    function ts(A) {
        return [A.topLeftBorderBox, A.topRightBorderBox, A.bottomRightBorderBox, A.bottomLeftBorderBox]
    }
    function rs(A) {
        return [A.topLeftPaddingBox, A.topRightPaddingBox, A.bottomRightPaddingBox, A.bottomLeftPaddingBox]
    }
    function Bs(A) {
        return 1 === A.type
    }
    function ns(A, t) {
        return A.length === t.length && A.some(function(A, e) {
            return A === t[e]
        })
    }
    var ss = function(A, e, t, r, B) {
        var n = (Math.sqrt(2) - 1) / 3 * 4
          , s = t * n
          , o = r * n
          , i = A + t
          , Q = e + r;
        switch (B) {
        case As.TOP_LEFT:
            return new jn(new Zn(A,Q),new Zn(A,Q - o),new Zn(i - s,e),new Zn(i,e));
        case As.TOP_RIGHT:
            return new jn(new Zn(A,e),new Zn(A + s,e),new Zn(i,Q - o),new Zn(i,Q));
        case As.BOTTOM_RIGHT:
            return new jn(new Zn(i,e),new Zn(i,e + o),new Zn(A + s,Q),new Zn(A,Q));
        default:
            As.BOTTOM_LEFT;
            return new jn(new Zn(i,Q),new Zn(i - s,Q),new Zn(A,e + o),new Zn(A,e))
        }
    }
      , os = function(A, e, t) {
        this.offsetX = A,
        this.offsetY = e,
        this.matrix = t,
        this.type = 0,
        this.target = 6
    }
      , is = function(A, e) {
        this.path = A,
        this.target = e,
        this.type = 1
    }
      , Qs = function(A) {
        this.opacity = A,
        this.type = 2,
        this.target = 6
    }
      , cs = function(A) {
        this.element = A,
        this.inlineLevel = [],
        this.nonInlineLevel = [],
        this.negativeZIndex = [],
        this.zeroOrAutoZIndexOrTransformedOrOpacity = [],
        this.positiveZIndex = [],
        this.nonPositionedFloats = [],
        this.nonPositionedInlineLevel = []
    }
      , as = (gs.prototype.getEffects = function(e) {
        for (var A = -1 === [2, 3].indexOf(this.container.styles.position), t = this.parent, r = this.effects.slice(0); t; ) {
            var B, n, s = t.effects.filter(function(A) {
                return !Bs(A)
            });
            A || 0 !== t.container.styles.position || !t.parent ? (r.unshift.apply(r, s),
            A = -1 === [2, 3].indexOf(t.container.styles.position),
            0 !== t.container.styles.overflowX && (B = ts(t.curves),
            n = rs(t.curves),
            ns(B, n) || r.unshift(new is(n,6)))) : r.unshift.apply(r, s),
            t = t.parent
        }
        return r.filter(function(A) {
            return Pt(A.target, e)
        })
    }
    ,
    gs);
    function gs(A, e) {
        var t, r;
        this.container = A,
        this.parent = e,
        this.effects = [],
        this.curves = new es(this.container),
        this.container.styles.opacity < 1 && this.effects.push(new Qs(this.container.styles.opacity)),
        null !== this.container.styles.transform && (e = this.container.bounds.left + this.container.styles.transformOrigin[0].number,
        t = this.container.bounds.top + this.container.styles.transformOrigin[1].number,
        r = this.container.styles.transform,
        this.effects.push(new os(e,t,r))),
        0 !== this.container.styles.overflowX && (t = ts(this.curves),
        r = rs(this.curves),
        ns(t, r) ? this.effects.push(new is(t,6)) : (this.effects.push(new is(t,2)),
        this.effects.push(new is(r,4))))
    }
    function ws(A, e) {
        switch (e) {
        case 0:
            return Hs(A.topLeftBorderBox, A.topLeftPaddingBox, A.topRightBorderBox, A.topRightPaddingBox);
        case 1:
            return Hs(A.topRightBorderBox, A.topRightPaddingBox, A.bottomRightBorderBox, A.bottomRightPaddingBox);
        case 2:
            return Hs(A.bottomRightBorderBox, A.bottomRightPaddingBox, A.bottomLeftBorderBox, A.bottomLeftPaddingBox);
        default:
            return Hs(A.bottomLeftBorderBox, A.bottomLeftPaddingBox, A.topLeftBorderBox, A.topLeftPaddingBox)
        }
    }
    function Us(A) {
        var e = A.bounds
          , A = A.styles;
        return e.add(A.borderLeftWidth, A.borderTopWidth, -(A.borderRightWidth + A.borderLeftWidth), -(A.borderTopWidth + A.borderBottomWidth))
    }
    function ls(A) {
        var e = A.styles
          , t = A.bounds
          , r = Ue(e.paddingLeft, t.width)
          , B = Ue(e.paddingRight, t.width)
          , n = Ue(e.paddingTop, t.width)
          , A = Ue(e.paddingBottom, t.width);
        return t.add(r + e.borderLeftWidth, n + e.borderTopWidth, -(e.borderRightWidth + e.borderLeftWidth + r + B), -(e.borderTopWidth + e.borderBottomWidth + n + A))
    }
    function Cs(A, e, t) {
        var r = (B = Es(A.styles.backgroundOrigin, e),
        n = A,
        0 === B ? n.bounds : (2 === B ? ls : Us)(n))
          , B = (s = Es(A.styles.backgroundClip, e),
        o = A,
        0 === s ? o.bounds : (2 === s ? ls : Us)(o))
          , n = ps(Es(A.styles.backgroundSize, e), t, r)
          , s = n[0]
          , o = n[1]
          , t = Be(Es(A.styles.backgroundPosition, e), r.width - s, r.height - o);
        return [Is(Es(A.styles.backgroundRepeat, e), t, n, r, B), Math.round(r.left + t[0]), Math.round(r.top + t[1]), s, o]
    }
    function us(A) {
        return _A(A) && A.value === Ve.AUTO
    }
    function Fs(A) {
        return "number" == typeof A
    }
    var hs = function(Q, c, a, g) {
        Q.container.elements.forEach(function(A) {
            var e = Pt(A.flags, 4)
              , t = Pt(A.flags, 2)
              , r = new as(A,Q);
            Pt(A.styles.display, 2048) && g.push(r);
            var B, n, s, o, i = Pt(A.flags, 8) ? [] : g;
            e || t ? (B = e || A.styles.isPositioned() ? a : c,
            t = new cs(r),
            A.styles.isPositioned() || A.styles.opacity < 1 || A.styles.isTransformed() ? (n = A.styles.zIndex.order) < 0 ? (s = 0,
            B.negativeZIndex.some(function(A, e) {
                return n > A.element.container.styles.zIndex.order ? (s = e,
                !1) : 0 < s
            }),
            B.negativeZIndex.splice(s, 0, t)) : 0 < n ? (o = 0,
            B.positiveZIndex.some(function(A, e) {
                return n >= A.element.container.styles.zIndex.order ? (o = e + 1,
                !1) : 0 < o
            }),
            B.positiveZIndex.splice(o, 0, t)) : B.zeroOrAutoZIndexOrTransformedOrOpacity.push(t) : (A.styles.isFloating() ? B.nonPositionedFloats : B.nonPositionedInlineLevel).push(t),
            hs(r, t, e ? t : a, i)) : ((A.styles.isInlineLevel() ? c.inlineLevel : c.nonInlineLevel).push(r),
            hs(r, c, a, i)),
            Pt(A.flags, 8) && ds(A, i)
        })
    }
      , ds = function(A, e) {
        for (var t = A instanceof UB ? A.start : 1, r = A instanceof UB && A.reversed, B = 0; B < e.length; B++) {
            var n = e[B];
            n.container instanceof aB && "number" == typeof n.container.value && 0 !== n.container.value && (t = n.container.value),
            n.listValue = Fn(t, n.container.styles.listStyleType, !0),
            t += r ? -1 : 1
        }
    }
      , fs = function(A, e) {
        var t = [];
        return $n(A) ? t.push(A.subdivide(.5, !1)) : t.push(A),
        $n(e) ? t.push(e.subdivide(.5, !0)) : t.push(e),
        t
    }
      , Hs = function(A, e, t, r) {
        var B = [];
        return $n(A) ? B.push(A.subdivide(.5, !1)) : B.push(A),
        $n(t) ? B.push(t.subdivide(.5, !0)) : B.push(t),
        $n(r) ? B.push(r.subdivide(.5, !0).reverse()) : B.push(r),
        $n(e) ? B.push(e.subdivide(.5, !1).reverse()) : B.push(e),
        B
    }
      , ps = function(A, e, t) {
        var r = e[0]
          , B = e[1]
          , n = e[2]
          , s = A[0]
          , o = A[1];
        if (!s)
            return [0, 0];
        if (te(s) && o && te(o))
            return [Ue(s, t.width), Ue(o, t.height)];
        var i = Fs(n);
        if (_A(s) && (s.value === Ve.CONTAIN || s.value === Ve.COVER))
            return Fs(n) ? t.width / t.height < n != (s.value === Ve.COVER) ? [t.width, t.width / n] : [t.height * n, t.height] : [t.width, t.height];
        var Q = Fs(r)
          , e = Fs(B)
          , A = Q || e;
        if (us(s) && (!o || us(o)))
            return Q && e ? [r, B] : i || A ? A && i ? [Q ? r : B * n, e ? B : r / n] : [Q ? r : t.width, e ? B : t.height] : [t.width, t.height];
        if (i) {
            var c = 0
              , a = 0;
            return te(s) ? c = Ue(s, t.width) : te(o) && (a = Ue(o, t.height)),
            us(s) ? c = a * n : o && !us(o) || (a = c / n),
            [c, a]
        }
        c = null,
        a = null;
        if (te(s) ? c = Ue(s, t.width) : o && te(o) && (a = Ue(o, t.height)),
        null !== (c = null !== (a = null !== c && (!o || us(o)) ? Q && e ? c / r * B : t.height : a) && us(s) ? Q && e ? a / B * r : t.width : c) && null !== a)
            return [c, a];
        throw new Error("Unable to calculate background-size for element")
    }
      , Es = function(A, e) {
        e = A[e];
        return void 0 === e ? A[0] : e
    }
      , Is = function(A, e, t, r, B) {
        var n = e[0]
          , s = e[1]
          , o = t[0]
          , i = t[1];
        switch (A) {
        case 2:
            return [new Zn(Math.round(r.left),Math.round(r.top + s)), new Zn(Math.round(r.left + r.width),Math.round(r.top + s)), new Zn(Math.round(r.left + r.width),Math.round(i + r.top + s)), new Zn(Math.round(r.left),Math.round(i + r.top + s))];
        case 3:
            return [new Zn(Math.round(r.left + n),Math.round(r.top)), new Zn(Math.round(r.left + n + o),Math.round(r.top)), new Zn(Math.round(r.left + n + o),Math.round(r.height + r.top)), new Zn(Math.round(r.left + n),Math.round(r.height + r.top))];
        case 1:
            return [new Zn(Math.round(r.left + n),Math.round(r.top + s)), new Zn(Math.round(r.left + n + o),Math.round(r.top + s)), new Zn(Math.round(r.left + n + o),Math.round(r.top + s + i)), new Zn(Math.round(r.left + n),Math.round(r.top + s + i))];
        default:
            return [new Zn(Math.round(B.left),Math.round(B.top)), new Zn(Math.round(B.left + B.width),Math.round(B.top)), new Zn(Math.round(B.left + B.width),Math.round(B.height + B.top)), new Zn(Math.round(B.left),Math.round(B.height + B.top))]
        }
    }
      , ys = "Hidden Text"
      , Ks = (ms.prototype.parseMetrics = function(A, e) {
        var t = this._document.createElement("div")
          , r = this._document.createElement("img")
          , B = this._document.createElement("span")
          , n = this._document.body;
        t.style.visibility = "hidden",
        t.style.fontFamily = A,
        t.style.fontSize = e,
        t.style.margin = "0",
        t.style.padding = "0",
        t.style.whiteSpace = "nowrap",
        n.appendChild(t),
        r.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
        r.width = 1,
        r.height = 1,
        r.style.margin = "0",
        r.style.padding = "0",
        r.style.verticalAlign = "baseline",
        B.style.fontFamily = A,
        B.style.fontSize = e,
        B.style.margin = "0",
        B.style.padding = "0",
        B.appendChild(this._document.createTextNode(ys)),
        t.appendChild(B),
        t.appendChild(r);
        e = r.offsetTop - B.offsetTop + 2;
        t.removeChild(B),
        t.appendChild(this._document.createTextNode(ys)),
        t.style.lineHeight = "normal",
        r.style.verticalAlign = "super";
        r = r.offsetTop - t.offsetTop + 2;
        return n.removeChild(t),
        {
            baseline: e,
            middle: r
        }
    }
    ,
    ms.prototype.getMetrics = function(A, e) {
        var t = A + " " + e;
        return void 0 === this._data[t] && (this._data[t] = this.parseMetrics(A, e)),
        this._data[t]
    }
    ,
    ms);
    function ms(A) {
        this._data = {},
        this._document = A
    }
    var Ls, he = function(A, e) {
        this.context = A,
        this.options = e
    }, bs = (A(Ds, Ls = he),
    Ds.prototype.applyEffects = function(A) {
        for (var e = this; this._activeEffects.length; )
            this.popEffect();
        A.forEach(function(A) {
            return e.applyEffect(A)
        })
    }
    ,
    Ds.prototype.applyEffect = function(A) {
        this.ctx.save(),
        2 === A.type && (this.ctx.globalAlpha = A.opacity),
        0 === A.type && (this.ctx.translate(A.offsetX, A.offsetY),
        this.ctx.transform(A.matrix[0], A.matrix[1], A.matrix[2], A.matrix[3], A.matrix[4], A.matrix[5]),
        this.ctx.translate(-A.offsetX, -A.offsetY)),
        Bs(A) && (this.path(A.path),
        this.ctx.clip()),
        this._activeEffects.push(A)
    }
    ,
    Ds.prototype.popEffect = function() {
        this._activeEffects.pop(),
        this.ctx.restore()
    }
    ,
    Ds.prototype.renderStack = function(e) {
        return a(this, void 0, void 0, function() {
            return H(this, function(A) {
                switch (A.label) {
                case 0:
                    return e.element.container.styles.isVisible() ? [4, this.renderStackContent(e)] : [3, 2];
                case 1:
                    A.sent(),
                    A.label = 2;
                case 2:
                    return [2]
                }
            })
        })
    }
    ,
    Ds.prototype.renderNode = function(e) {
        return a(this, void 0, void 0, function() {
            return H(this, function(A) {
                switch (A.label) {
                case 0:
                    return Pt(e.container.flags, 16),
                    e.container.styles.isVisible() ? [4, this.renderNodeBackgroundAndBorders(e)] : [3, 3];
                case 1:
                    return A.sent(),
                    [4, this.renderNodeContent(e)];
                case 2:
                    A.sent(),
                    A.label = 3;
                case 3:
                    return [2]
                }
            })
        })
    }
    ,
    Ds.prototype.renderTextWithLetterSpacing = function(t, A, r) {
        var B = this;
        0 === A ? this.ctx.fillText(t.text, t.bounds.left, t.bounds.top + r) : Zr(t.text).reduce(function(A, e) {
            return B.ctx.fillText(e, A, t.bounds.top + r),
            A + B.ctx.measureText(e).width
        }, t.bounds.left)
    }
    ,
    Ds.prototype.createFontStyle = function(A) {
        var e = A.fontVariant.filter(function(A) {
            return "normal" === A || "small-caps" === A
        }).join("")
          , t = Gs(A.fontFamily).join(", ")
          , r = WA(A.fontSize) ? "" + A.fontSize.number + A.fontSize.unit : A.fontSize.number + "px";
        return [[A.fontStyle, e, A.fontWeight, r, t].join(" "), t, r]
    }
    ,
    Ds.prototype.renderTextNode = function(i, Q) {
        return a(this, void 0, void 0, function() {
            var e, t, r, B, n, s, o = this;
            return H(this, function(A) {
                return r = this.createFontStyle(Q),
                e = r[0],
                t = r[1],
                r = r[2],
                this.ctx.font = e,
                this.ctx.direction = 1 === Q.direction ? "rtl" : "ltr",
                this.ctx.textAlign = "left",
                this.ctx.textBaseline = "alphabetic",
                r = this.fontMetrics.getMetrics(t, r),
                B = r.baseline,
                n = r.middle,
                s = Q.paintOrder,
                i.textBounds.forEach(function(t) {
                    s.forEach(function(A) {
                        switch (A) {
                        case 0:
                            o.ctx.fillStyle = ie(Q.color),
                            o.renderTextWithLetterSpacing(t, Q.letterSpacing, B);
                            var e = Q.textShadow;
                            e.length && t.text.trim().length && (e.slice(0).reverse().forEach(function(A) {
                                o.ctx.shadowColor = ie(A.color),
                                o.ctx.shadowOffsetX = A.offsetX.number * o.options.scale,
                                o.ctx.shadowOffsetY = A.offsetY.number * o.options.scale,
                                o.ctx.shadowBlur = A.blur.number,
                                o.renderTextWithLetterSpacing(t, Q.letterSpacing, B)
                            }),
                            o.ctx.shadowColor = "",
                            o.ctx.shadowOffsetX = 0,
                            o.ctx.shadowOffsetY = 0,
                            o.ctx.shadowBlur = 0),
                            Q.textDecorationLine.length && (o.ctx.fillStyle = ie(Q.textDecorationColor || Q.color),
                            Q.textDecorationLine.forEach(function(A) {
                                switch (A) {
                                case 1:
                                    o.ctx.fillRect(t.bounds.left, Math.round(t.bounds.top + B), t.bounds.width, 1);
                                    break;
                                case 2:
                                    o.ctx.fillRect(t.bounds.left, Math.round(t.bounds.top), t.bounds.width, 1);
                                    break;
                                case 3:
                                    o.ctx.fillRect(t.bounds.left, Math.ceil(t.bounds.top + n), t.bounds.width, 1)
                                }
                            }));
                            break;
                        case 1:
                            Q.webkitTextStrokeWidth && t.text.trim().length && (o.ctx.strokeStyle = ie(Q.webkitTextStrokeColor),
                            o.ctx.lineWidth = Q.webkitTextStrokeWidth,
                            o.ctx.lineJoin = window.chrome ? "miter" : "round",
                            o.ctx.strokeText(t.text, t.bounds.left, t.bounds.top + B)),
                            o.ctx.strokeStyle = "",
                            o.ctx.lineWidth = 0,
                            o.ctx.lineJoin = "miter"
                        }
                    })
                }),
                [2]
            })
        })
    }
    ,
    Ds.prototype.renderReplacedElement = function(A, e, t) {
        var r;
        t && 0 < A.intrinsicWidth && 0 < A.intrinsicHeight && (r = ls(A),
        e = rs(e),
        this.path(e),
        this.ctx.save(),
        this.ctx.clip(),
        this.ctx.drawImage(t, 0, 0, A.intrinsicWidth, A.intrinsicHeight, r.left, r.top, r.width, r.height),
        this.ctx.restore())
    }
    ,
    Ds.prototype.renderNodeContent = function(w) {
        return a(this, void 0, void 0, function() {
            var e, t, r, B, n, s, o, i, Q, c, a, g;
            return H(this, function(A) {
                switch (A.label) {
                case 0:
                    this.applyEffects(w.getEffects(4)),
                    e = w.container,
                    t = w.curves,
                    r = e.styles,
                    B = 0,
                    n = e.textNodes,
                    A.label = 1;
                case 1:
                    return B < n.length ? (s = n[B],
                    [4, this.renderTextNode(s, r)]) : [3, 4];
                case 2:
                    A.sent(),
                    A.label = 3;
                case 3:
                    return B++,
                    [3, 1];
                case 4:
                    if (!(e instanceof tB))
                        return [3, 8];
                    A.label = 5;
                case 5:
                    return A.trys.push([5, 7, , 8]),
                    [4, this.context.cache.match(e.src)];
                case 6:
                    return Q = A.sent(),
                    this.renderReplacedElement(e, t, Q),
                    [3, 8];
                case 7:
                    return A.sent(),
                    this.context.logger.error("Error loading image " + e.src),
                    [3, 8];
                case 8:
                    if (e instanceof nB && this.renderReplacedElement(e, t, e.canvas),
                    !(e instanceof iB))
                        return [3, 12];
                    A.label = 9;
                case 9:
                    return A.trys.push([9, 11, , 12]),
                    [4, this.context.cache.match(e.svg)];
                case 10:
                    return Q = A.sent(),
                    this.renderReplacedElement(e, t, Q),
                    [3, 12];
                case 11:
                    return A.sent(),
                    this.context.logger.error("Error loading svg " + e.svg.substring(0, 255)),
                    [3, 12];
                case 12:
                    return e instanceof vB && e.tree ? [4, new Ds(this.context,{
                        scale: this.options.scale,
                        backgroundColor: e.backgroundColor,
                        x: 0,
                        y: 0,
                        width: e.width,
                        height: e.height
                    }).render(e.tree)] : [3, 14];
                case 13:
                    s = A.sent(),
                    e.width && e.height && this.ctx.drawImage(s, 0, 0, e.width, e.height, e.bounds.left, e.bounds.top, e.bounds.width, e.bounds.height),
                    A.label = 14;
                case 14:
                    if (e instanceof pB && (i = Math.min(e.bounds.width, e.bounds.height),
                    e.type === hB ? e.checked && (this.ctx.save(),
                    this.path([new Zn(e.bounds.left + .39363 * i,e.bounds.top + .79 * i), new Zn(e.bounds.left + .16 * i,e.bounds.top + .5549 * i), new Zn(e.bounds.left + .27347 * i,e.bounds.top + .44071 * i), new Zn(e.bounds.left + .39694 * i,e.bounds.top + .5649 * i), new Zn(e.bounds.left + .72983 * i,e.bounds.top + .23 * i), new Zn(e.bounds.left + .84 * i,e.bounds.top + .34085 * i), new Zn(e.bounds.left + .39363 * i,e.bounds.top + .79 * i)]),
                    this.ctx.fillStyle = ie(HB),
                    this.ctx.fill(),
                    this.ctx.restore()) : e.type === dB && e.checked && (this.ctx.save(),
                    this.ctx.beginPath(),
                    this.ctx.arc(e.bounds.left + i / 2, e.bounds.top + i / 2, i / 4, 0, 2 * Math.PI, !0),
                    this.ctx.fillStyle = ie(HB),
                    this.ctx.fill(),
                    this.ctx.restore())),
                    xs(e) && e.value.length) {
                        switch (c = this.createFontStyle(r),
                        a = c[0],
                        i = c[1],
                        c = this.fontMetrics.getMetrics(a, i).baseline,
                        this.ctx.font = a,
                        this.ctx.fillStyle = ie(r.color),
                        this.ctx.textBaseline = "alphabetic",
                        this.ctx.textAlign = Ss(e.styles.textAlign),
                        g = ls(e),
                        o = 0,
                        e.styles.textAlign) {
                        case 1:
                            o += g.width / 2;
                            break;
                        case 2:
                            o += g.width
                        }
                        i = g.add(o, 0, 0, -g.height / 2 + 1),
                        this.ctx.save(),
                        this.path([new Zn(g.left,g.top), new Zn(g.left + g.width,g.top), new Zn(g.left + g.width,g.top + g.height), new Zn(g.left,g.top + g.height)]),
                        this.ctx.clip(),
                        this.renderTextWithLetterSpacing(new Jr(e.value,i), r.letterSpacing, c),
                        this.ctx.restore(),
                        this.ctx.textBaseline = "alphabetic",
                        this.ctx.textAlign = "left"
                    }
                    if (!Pt(e.styles.display, 2048))
                        return [3, 20];
                    if (null === e.styles.listStyleImage)
                        return [3, 19];
                    if (0 !== (c = e.styles.listStyleImage).type)
                        return [3, 18];
                    Q = void 0,
                    c = c.url,
                    A.label = 15;
                case 15:
                    return A.trys.push([15, 17, , 18]),
                    [4, this.context.cache.match(c)];
                case 16:
                    return Q = A.sent(),
                    this.ctx.drawImage(Q, e.bounds.left - (Q.width + 10), e.bounds.top),
                    [3, 18];
                case 17:
                    return A.sent(),
                    this.context.logger.error("Error loading list-style-image " + c),
                    [3, 18];
                case 18:
                    return [3, 20];
                case 19:
                    w.listValue && -1 !== e.styles.listStyleType && (a = this.createFontStyle(r)[0],
                    this.ctx.font = a,
                    this.ctx.fillStyle = ie(r.color),
                    this.ctx.textBaseline = "middle",
                    this.ctx.textAlign = "right",
                    g = new d(e.bounds.left,e.bounds.top + Ue(e.styles.paddingTop, e.bounds.width),e.bounds.width,Ye(r.lineHeight, r.fontSize.number) / 2 + 1),
                    this.renderTextWithLetterSpacing(new Jr(w.listValue,g), r.letterSpacing, Ye(r.lineHeight, r.fontSize.number) / 2 + 2),
                    this.ctx.textBaseline = "bottom",
                    this.ctx.textAlign = "left"),
                    A.label = 20;
                case 20:
                    return [2]
                }
            })
        })
    }
    ,
    Ds.prototype.renderStackContent = function(C) {
        return a(this, void 0, void 0, function() {
            var e, t, r, B, n, s, o, i, Q, c, a, g, w, U, l;
            return H(this, function(A) {
                switch (A.label) {
                case 0:
                    return Pt(C.element.container.flags, 16),
                    [4, this.renderNodeBackgroundAndBorders(C.element)];
                case 1:
                    A.sent(),
                    e = 0,
                    t = C.negativeZIndex,
                    A.label = 2;
                case 2:
                    return e < t.length ? (l = t[e],
                    [4, this.renderStack(l)]) : [3, 5];
                case 3:
                    A.sent(),
                    A.label = 4;
                case 4:
                    return e++,
                    [3, 2];
                case 5:
                    return [4, this.renderNodeContent(C.element)];
                case 6:
                    A.sent(),
                    r = 0,
                    B = C.nonInlineLevel,
                    A.label = 7;
                case 7:
                    return r < B.length ? (l = B[r],
                    [4, this.renderNode(l)]) : [3, 10];
                case 8:
                    A.sent(),
                    A.label = 9;
                case 9:
                    return r++,
                    [3, 7];
                case 10:
                    n = 0,
                    s = C.nonPositionedFloats,
                    A.label = 11;
                case 11:
                    return n < s.length ? (l = s[n],
                    [4, this.renderStack(l)]) : [3, 14];
                case 12:
                    A.sent(),
                    A.label = 13;
                case 13:
                    return n++,
                    [3, 11];
                case 14:
                    o = 0,
                    i = C.nonPositionedInlineLevel,
                    A.label = 15;
                case 15:
                    return o < i.length ? (l = i[o],
                    [4, this.renderStack(l)]) : [3, 18];
                case 16:
                    A.sent(),
                    A.label = 17;
                case 17:
                    return o++,
                    [3, 15];
                case 18:
                    Q = 0,
                    c = C.inlineLevel,
                    A.label = 19;
                case 19:
                    return Q < c.length ? (l = c[Q],
                    [4, this.renderNode(l)]) : [3, 22];
                case 20:
                    A.sent(),
                    A.label = 21;
                case 21:
                    return Q++,
                    [3, 19];
                case 22:
                    a = 0,
                    g = C.zeroOrAutoZIndexOrTransformedOrOpacity,
                    A.label = 23;
                case 23:
                    return a < g.length ? (l = g[a],
                    [4, this.renderStack(l)]) : [3, 26];
                case 24:
                    A.sent(),
                    A.label = 25;
                case 25:
                    return a++,
                    [3, 23];
                case 26:
                    w = 0,
                    U = C.positiveZIndex,
                    A.label = 27;
                case 27:
                    return w < U.length ? (l = U[w],
                    [4, this.renderStack(l)]) : [3, 30];
                case 28:
                    A.sent(),
                    A.label = 29;
                case 29:
                    return w++,
                    [3, 27];
                case 30:
                    return [2]
                }
            })
        })
    }
    ,
    Ds.prototype.mask = function(A) {
        this.ctx.beginPath(),
        this.ctx.moveTo(0, 0),
        this.ctx.lineTo(this.canvas.width, 0),
        this.ctx.lineTo(this.canvas.width, this.canvas.height),
        this.ctx.lineTo(0, this.canvas.height),
        this.ctx.lineTo(0, 0),
        this.formatPath(A.slice(0).reverse()),
        this.ctx.closePath()
    }
    ,
    Ds.prototype.path = function(A) {
        this.ctx.beginPath(),
        this.formatPath(A),
        this.ctx.closePath()
    }
    ,
    Ds.prototype.formatPath = function(A) {
        var r = this;
        A.forEach(function(A, e) {
            var t = $n(A) ? A.start : A;
            0 === e ? r.ctx.moveTo(t.x, t.y) : r.ctx.lineTo(t.x, t.y),
            $n(A) && r.ctx.bezierCurveTo(A.startControl.x, A.startControl.y, A.endControl.x, A.endControl.y, A.end.x, A.end.y)
        })
    }
    ,
    Ds.prototype.renderRepeat = function(A, e, t, r) {
        this.path(A),
        this.ctx.fillStyle = e,
        this.ctx.translate(t, r),
        this.ctx.fill(),
        this.ctx.translate(-t, -r)
    }
    ,
    Ds.prototype.resizeImage = function(A, e, t) {
        if (A.width === e && A.height === t)
            return A;
        var r = (null !== (r = this.canvas.ownerDocument) && void 0 !== r ? r : document).createElement("canvas");
        return r.width = Math.max(1, e),
        r.height = Math.max(1, t),
        r.getContext("2d").drawImage(A, 0, 0, A.width, A.height, 0, 0, e, t),
        r
    }
    ,
    Ds.prototype.renderBackgroundImage = function(f) {
        return a(this, void 0, void 0, function() {
            var h, e, d, t, r, B;
            return H(this, function(A) {
                switch (A.label) {
                case 0:
                    h = f.styles.backgroundImage.length - 1,
                    e = function(e) {
                        var t, r, B, n, s, o, i, Q, c, a, g, w, U, l, C, u, F;
                        return H(this, function(A) {
                            switch (A.label) {
                            case 0:
                                if (0 !== e.type)
                                    return [3, 5];
                                t = void 0,
                                r = e.url,
                                A.label = 1;
                            case 1:
                                return A.trys.push([1, 3, , 4]),
                                [4, d.context.cache.match(r)];
                            case 2:
                                return t = A.sent(),
                                [3, 4];
                            case 3:
                                return A.sent(),
                                d.context.logger.error("Error loading background-image " + r),
                                [3, 4];
                            case 4:
                                return t && (B = Cs(f, h, [t.width, t.height, t.width / t.height]),
                                o = B[0],
                                g = B[1],
                                w = B[2],
                                c = B[3],
                                a = B[4],
                                s = d.ctx.createPattern(d.resizeImage(t, c, a), "repeat"),
                                d.renderRepeat(o, s, g, w)),
                                [3, 6];
                            case 5:
                                1 === e.type ? (F = Cs(f, h, [null, null, null]),
                                o = F[0],
                                g = F[1],
                                w = F[2],
                                c = F[3],
                                a = F[4],
                                C = Ee(e.angle, c, a),
                                l = C[0],
                                B = C[1],
                                i = C[2],
                                u = C[3],
                                Q = C[4],
                                (F = document.createElement("canvas")).width = c,
                                F.height = a,
                                C = F.getContext("2d"),
                                n = C.createLinearGradient(B, u, i, Q),
                                pe(e.stops, l).forEach(function(A) {
                                    return n.addColorStop(A.stop, ie(A.color))
                                }),
                                C.fillStyle = n,
                                C.fillRect(0, 0, c, a),
                                0 < c && 0 < a && (s = d.ctx.createPattern(F, "repeat"),
                                d.renderRepeat(o, s, g, w))) : 2 === e.type && (u = Cs(f, h, [null, null, null]),
                                o = u[0],
                                i = u[1],
                                Q = u[2],
                                c = u[3],
                                a = u[4],
                                l = 0 === e.position.length ? [ge] : e.position,
                                g = Ue(l[0], c),
                                w = Ue(l[l.length - 1], a),
                                C = function(A, e, t, r, B) {
                                    var n, s, o, i, Q = 0, c = 0;
                                    switch (A.size) {
                                    case 0:
                                        0 === A.shape ? Q = c = Math.min(Math.abs(e), Math.abs(e - r), Math.abs(t), Math.abs(t - B)) : 1 === A.shape && (Q = Math.min(Math.abs(e), Math.abs(e - r)),
                                        c = Math.min(Math.abs(t), Math.abs(t - B)));
                                        break;
                                    case 2:
                                        0 === A.shape ? Q = c = Math.min(Ie(e, t), Ie(e, t - B), Ie(e - r, t), Ie(e - r, t - B)) : 1 === A.shape && (n = Math.min(Math.abs(t), Math.abs(t - B)) / Math.min(Math.abs(e), Math.abs(e - r)),
                                        o = (s = ye(r, B, e, t, !0))[0],
                                        i = s[1],
                                        c = n * (Q = Ie(o - e, (i - t) / n)));
                                        break;
                                    case 1:
                                        0 === A.shape ? Q = c = Math.max(Math.abs(e), Math.abs(e - r), Math.abs(t), Math.abs(t - B)) : 1 === A.shape && (Q = Math.max(Math.abs(e), Math.abs(e - r)),
                                        c = Math.max(Math.abs(t), Math.abs(t - B)));
                                        break;
                                    case 3:
                                        0 === A.shape ? Q = c = Math.max(Ie(e, t), Ie(e, t - B), Ie(e - r, t), Ie(e - r, t - B)) : 1 === A.shape && (n = Math.max(Math.abs(t), Math.abs(t - B)) / Math.max(Math.abs(e), Math.abs(e - r)),
                                        o = (s = ye(r, B, e, t, !1))[0],
                                        i = s[1],
                                        c = n * (Q = Ie(o - e, (i - t) / n)))
                                    }
                                    return Array.isArray(A.size) && (Q = Ue(A.size[0], r),
                                    c = 2 === A.size.length ? Ue(A.size[1], B) : Q),
                                    [Q, c]
                                }(e, g, w, c, a),
                                F = C[0],
                                u = C[1],
                                0 < F && 0 < u && (U = d.ctx.createRadialGradient(i + g, Q + w, 0, i + g, Q + w, F),
                                pe(e.stops, 2 * F).forEach(function(A) {
                                    return U.addColorStop(A.stop, ie(A.color))
                                }),
                                d.path(o),
                                d.ctx.fillStyle = U,
                                F !== u ? (l = f.bounds.left + .5 * f.bounds.width,
                                C = f.bounds.top + .5 * f.bounds.height,
                                F = 1 / (u = u / F),
                                d.ctx.save(),
                                d.ctx.translate(l, C),
                                d.ctx.transform(1, 0, 0, u, 0, 0),
                                d.ctx.translate(-l, -C),
                                d.ctx.fillRect(i, F * (Q - C) + C, c, a * F),
                                d.ctx.restore()) : d.ctx.fill())),
                                A.label = 6;
                            case 6:
                                return h--,
                                [2]
                            }
                        })
                    }
                    ,
                    d = this,
                    t = 0,
                    r = f.styles.backgroundImage.slice(0).reverse(),
                    A.label = 1;
                case 1:
                    return t < r.length ? (B = r[t],
                    [5, e(B)]) : [3, 4];
                case 2:
                    A.sent(),
                    A.label = 3;
                case 3:
                    return t++,
                    [3, 1];
                case 4:
                    return [2]
                }
            })
        })
    }
    ,
    Ds.prototype.renderSolidBorder = function(e, t, r) {
        return a(this, void 0, void 0, function() {
            return H(this, function(A) {
                return this.path(ws(r, t)),
                this.ctx.fillStyle = ie(e),
                this.ctx.fill(),
                [2]
            })
        })
    }
    ,
    Ds.prototype.renderDoubleBorder = function(t, r, B, n) {
        return a(this, void 0, void 0, function() {
            var e;
            return H(this, function(A) {
                switch (A.label) {
                case 0:
                    return r < 3 ? [4, this.renderSolidBorder(t, B, n)] : [3, 2];
                case 1:
                    return A.sent(),
                    [2];
                case 2:
                    return e = function(A, e) {
                        switch (e) {
                        case 0:
                            return Hs(A.topLeftBorderBox, A.topLeftBorderDoubleOuterBox, A.topRightBorderBox, A.topRightBorderDoubleOuterBox);
                        case 1:
                            return Hs(A.topRightBorderBox, A.topRightBorderDoubleOuterBox, A.bottomRightBorderBox, A.bottomRightBorderDoubleOuterBox);
                        case 2:
                            return Hs(A.bottomRightBorderBox, A.bottomRightBorderDoubleOuterBox, A.bottomLeftBorderBox, A.bottomLeftBorderDoubleOuterBox);
                        default:
                            return Hs(A.bottomLeftBorderBox, A.bottomLeftBorderDoubleOuterBox, A.topLeftBorderBox, A.topLeftBorderDoubleOuterBox)
                        }
                    }(n, B),
                    this.path(e),
                    this.ctx.fillStyle = ie(t),
                    this.ctx.fill(),
                    e = function(A, e) {
                        switch (e) {
                        case 0:
                            return Hs(A.topLeftBorderDoubleInnerBox, A.topLeftPaddingBox, A.topRightBorderDoubleInnerBox, A.topRightPaddingBox);
                        case 1:
                            return Hs(A.topRightBorderDoubleInnerBox, A.topRightPaddingBox, A.bottomRightBorderDoubleInnerBox, A.bottomRightPaddingBox);
                        case 2:
                            return Hs(A.bottomRightBorderDoubleInnerBox, A.bottomRightPaddingBox, A.bottomLeftBorderDoubleInnerBox, A.bottomLeftPaddingBox);
                        default:
                            return Hs(A.bottomLeftBorderDoubleInnerBox, A.bottomLeftPaddingBox, A.topLeftBorderDoubleInnerBox, A.topLeftPaddingBox)
                        }
                    }(n, B),
                    this.path(e),
                    this.ctx.fill(),
                    [2]
                }
            })
        })
    }
    ,
    Ds.prototype.renderNodeBackgroundAndBorders = function(c) {
        return a(this, void 0, void 0, function() {
            var e, t, r, B, n, s, o, i, Q = this;
            return H(this, function(A) {
                switch (A.label) {
                case 0:
                    return (this.applyEffects(c.getEffects(2)),
                    e = c.container.styles,
                    t = !oe(e.backgroundColor) || e.backgroundImage.length,
                    r = [{
                        style: e.borderTopStyle,
                        color: e.borderTopColor,
                        width: e.borderTopWidth
                    }, {
                        style: e.borderRightStyle,
                        color: e.borderRightColor,
                        width: e.borderRightWidth
                    }, {
                        style: e.borderBottomStyle,
                        color: e.borderBottomColor,
                        width: e.borderBottomWidth
                    }, {
                        style: e.borderLeftStyle,
                        color: e.borderLeftColor,
                        width: e.borderLeftWidth
                    }],
                    B = Ms(Es(e.backgroundClip, 0), c.curves),
                    t || e.boxShadow.length) ? (this.ctx.save(),
                    this.path(B),
                    this.ctx.clip(),
                    oe(e.backgroundColor) || (this.ctx.fillStyle = ie(e.backgroundColor),
                    this.ctx.fill()),
                    [4, this.renderBackgroundImage(c.container)]) : [3, 2];
                case 1:
                    A.sent(),
                    this.ctx.restore(),
                    e.boxShadow.slice(0).reverse().forEach(function(A) {
                        Q.ctx.save();
                        var t, r, B, n, e = ts(c.curves), s = A.inset ? 0 : 1e4, o = (t = -s + (A.inset ? 1 : -1) * A.spread.number,
                        r = (A.inset ? 1 : -1) * A.spread.number,
                        B = A.spread.number * (A.inset ? -2 : 2),
                        n = A.spread.number * (A.inset ? -2 : 2),
                        e.map(function(A, e) {
                            switch (e) {
                            case 0:
                                return A.add(t, r);
                            case 1:
                                return A.add(t + B, r);
                            case 2:
                                return A.add(t + B, r + n);
                            case 3:
                                return A.add(t, r + n)
                            }
                            return A
                        }));
                        A.inset ? (Q.path(e),
                        Q.ctx.clip(),
                        Q.mask(o)) : (Q.mask(e),
                        Q.ctx.clip(),
                        Q.path(o)),
                        Q.ctx.shadowOffsetX = A.offsetX.number + s,
                        Q.ctx.shadowOffsetY = A.offsetY.number,
                        Q.ctx.shadowColor = ie(A.color),
                        Q.ctx.shadowBlur = A.blur.number,
                        Q.ctx.fillStyle = A.inset ? ie(A.color) : "rgba(0,0,0,1)",
                        Q.ctx.fill(),
                        Q.ctx.restore()
                    }),
                    A.label = 2;
                case 2:
                    s = n = 0,
                    o = r,
                    A.label = 3;
                case 3:
                    return s < o.length ? 0 !== (i = o[s]).style && !oe(i.color) && 0 < i.width ? 2 !== i.style ? [3, 5] : [4, this.renderDashedDottedBorder(i.color, i.width, n, c.curves, 2)] : [3, 11] : [3, 13];
                case 4:
                    return A.sent(),
                    [3, 11];
                case 5:
                    return 3 !== i.style ? [3, 7] : [4, this.renderDashedDottedBorder(i.color, i.width, n, c.curves, 3)];
                case 6:
                    return A.sent(),
                    [3, 11];
                case 7:
                    return 4 !== i.style ? [3, 9] : [4, this.renderDoubleBorder(i.color, i.width, n, c.curves)];
                case 8:
                    return A.sent(),
                    [3, 11];
                case 9:
                    return [4, this.renderSolidBorder(i.color, n, c.curves)];
                case 10:
                    A.sent(),
                    A.label = 11;
                case 11:
                    n++,
                    A.label = 12;
                case 12:
                    return s++,
                    [3, 3];
                case 13:
                    return [2]
                }
            })
        })
    }
    ,
    Ds.prototype.renderDashedDottedBorder = function(g, w, U, l, C) {
        return a(this, void 0, void 0, function() {
            var e, t, r, B, n, s, o, i, Q, c, a;
            return H(this, function(A) {
                return this.ctx.save(),
                Q = function(A, e) {
                    switch (e) {
                    case 0:
                        return fs(A.topLeftBorderStroke, A.topRightBorderStroke);
                    case 1:
                        return fs(A.topRightBorderStroke, A.bottomRightBorderStroke);
                    case 2:
                        return fs(A.bottomRightBorderStroke, A.bottomLeftBorderStroke);
                    default:
                        return fs(A.bottomLeftBorderStroke, A.topLeftBorderStroke)
                    }
                }(l, U),
                e = ws(l, U),
                2 === C && (this.path(e),
                this.ctx.clip()),
                s = $n(e[0]) ? (t = e[0].start.x,
                e[0].start.y) : (t = e[0].x,
                e[0].y),
                o = $n(e[1]) ? (r = e[1].end.x,
                e[1].end.y) : (r = e[1].x,
                e[1].y),
                B = 0 === U || 2 === U ? Math.abs(t - r) : Math.abs(s - o),
                this.ctx.beginPath(),
                3 === C ? this.formatPath(Q) : this.formatPath(e.slice(0, 2)),
                n = w < 3 ? 3 * w : 2 * w,
                s = w < 3 ? 2 * w : w,
                3 === C && (s = n = w),
                o = !0,
                B <= 2 * n ? o = !1 : B <= 2 * n + s ? (n *= i = B / (2 * n + s),
                s *= i) : (Q = Math.floor((B + s) / (n + s)),
                i = (B - Q * n) / (Q - 1),
                s = (Q = (B - (Q + 1) * n) / Q) <= 0 || Math.abs(s - i) < Math.abs(s - Q) ? i : Q),
                o && (3 === C ? this.ctx.setLineDash([0, n + s]) : this.ctx.setLineDash([n, s])),
                3 === C ? (this.ctx.lineCap = "round",
                this.ctx.lineWidth = w) : this.ctx.lineWidth = 2 * w + 1.1,
                this.ctx.strokeStyle = ie(g),
                this.ctx.stroke(),
                this.ctx.setLineDash([]),
                2 === C && ($n(e[0]) && (c = e[3],
                a = e[0],
                this.ctx.beginPath(),
                this.formatPath([new Zn(c.end.x,c.end.y), new Zn(a.start.x,a.start.y)]),
                this.ctx.stroke()),
                $n(e[1]) && (c = e[1],
                a = e[2],
                this.ctx.beginPath(),
                this.formatPath([new Zn(c.end.x,c.end.y), new Zn(a.start.x,a.start.y)]),
                this.ctx.stroke())),
                this.ctx.restore(),
                [2]
            })
        })
    }
    ,
    Ds.prototype.render = function(B) {
        return a(this, void 0, void 0, function() {
            return H(this, function(A) {
                switch (A.label) {
                case 0:
                    return this.options.backgroundColor && (this.ctx.fillStyle = ie(this.options.backgroundColor),
                    this.ctx.fillRect(this.options.x, this.options.y, this.options.width, this.options.height)),
                    t = new as(e = B,null),
                    r = new cs(t),
                    hs(t, r, r, e = []),
                    ds(t.container, e),
                    [4, this.renderStack(r)];
                case 1:
                    return A.sent(),
                    this.applyEffects([]),
                    [2, this.canvas]
                }
                var e, t, r
            })
        })
    }
    ,
    Ds);
    function Ds(A, e) {
        A = Ls.call(this, A, e) || this;
        return A._activeEffects = [],
        A.canvas = e.canvas || document.createElement("canvas"),
        A.ctx = A.canvas.getContext("2d"),
        e.canvas || (A.canvas.width = Math.floor(e.width * e.scale),
        A.canvas.height = Math.floor(e.height * e.scale),
        A.canvas.style.width = e.width + "px",
        A.canvas.style.height = e.height + "px"),
        A.fontMetrics = new Ks(document),
        A.ctx.scale(A.options.scale, A.options.scale),
        A.ctx.translate(-e.x, -e.y),
        A.ctx.textBaseline = "bottom",
        A._activeEffects = [],
        A.context.logger.debug("Canvas renderer initialized (" + e.width + "x" + e.height + ") with scale " + e.scale),
        A
    }
    var vs, xs = function(A) {
        return A instanceof LB || (A instanceof yB || A instanceof pB && A.type !== dB && A.type !== hB)
    }, Ms = function(A, e) {
        switch (A) {
        case 0:
            return ts(e);
        case 2:
            return [e.topLeftContentBox, e.topRightContentBox, e.bottomRightContentBox, e.bottomLeftContentBox];
        default:
            return rs(e)
        }
    }, Ss = function(A) {
        switch (A) {
        case 1:
            return "center";
        case 2:
            return "right";
        default:
            return "left"
        }
    }, Ts = ["-apple-system", "system-ui"], Gs = function(A) {
        return /iPhone OS 15_(0|1)/.test(window.navigator.userAgent) ? A.filter(function(A) {
            return -1 === Ts.indexOf(A)
        }) : A
    }, Os = (A(Vs, vs = he),
    Vs.prototype.render = function(t) {
        return a(this, void 0, void 0, function() {
            var e;
            return H(this, function(A) {
                switch (A.label) {
                case 0:
                    return e = Nr(this.options.width * this.options.scale, this.options.height * this.options.scale, this.options.scale, this.options.scale, t),
                    [4, ks(e)];
                case 1:
                    return e = A.sent(),
                    this.options.backgroundColor && (this.ctx.fillStyle = ie(this.options.backgroundColor),
                    this.ctx.fillRect(0, 0, this.options.width * this.options.scale, this.options.height * this.options.scale)),
                    this.ctx.drawImage(e, -this.options.x * this.options.scale, -this.options.y * this.options.scale),
                    [2, this.canvas]
                }
            })
        })
    }
    ,
    Vs);
    function Vs(A, e) {
        A = vs.call(this, A, e) || this;
        return A.canvas = e.canvas || document.createElement("canvas"),
        A.ctx = A.canvas.getContext("2d"),
        A.options = e,
        A.canvas.width = Math.floor(e.width * e.scale),
        A.canvas.height = Math.floor(e.height * e.scale),
        A.canvas.style.width = e.width + "px",
        A.canvas.style.height = e.height + "px",
        A.ctx.scale(A.options.scale, A.options.scale),
        A.ctx.translate(-e.x, -e.y),
        A.context.logger.debug("EXPERIMENTAL ForeignObject renderer initialized (" + e.width + "x" + e.height + " at " + e.x + "," + e.y + ") with scale " + e.scale),
        A
    }
    var ks = function(r) {
        return new Promise(function(A, e) {
            var t = new Image;
            t.onload = function() {
                A(t)
            }
            ,
            t.onerror = e,
            t.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent((new XMLSerializer).serializeToString(r))
        }
        )
    }
      , Rs = (Ns.prototype.debug = function() {
        for (var A = [], e = 0; e < arguments.length; e++)
            A[e] = arguments[e];
        this.enabled && ("undefined" != typeof window && window.console && "function" == typeof console.debug ? console.debug.apply(console, t([this.id, this.getTime() + "ms"], A)) : this.info.apply(this, A))
    }
    ,
    Ns.prototype.getTime = function() {
        return Date.now() - this.start
    }
    ,
    Ns.prototype.info = function() {
        for (var A = [], e = 0; e < arguments.length; e++)
            A[e] = arguments[e];
        this.enabled && "undefined" != typeof window && window.console && "function" == typeof console.info && console.info.apply(console, t([this.id, this.getTime() + "ms"], A))
    }
    ,
    Ns.prototype.warn = function() {
        for (var A = [], e = 0; e < arguments.length; e++)
            A[e] = arguments[e];
        this.enabled && ("undefined" != typeof window && window.console && "function" == typeof console.warn ? console.warn.apply(console, t([this.id, this.getTime() + "ms"], A)) : this.info.apply(this, A))
    }
    ,
    Ns.prototype.error = function() {
        for (var A = [], e = 0; e < arguments.length; e++)
            A[e] = arguments[e];
        this.enabled && ("undefined" != typeof window && window.console && "function" == typeof console.error ? console.error.apply(console, t([this.id, this.getTime() + "ms"], A)) : this.info.apply(this, A))
    }
    ,
    Ns.instances = {},
    Ns);
    function Ns(A) {
        var e = A.id
          , A = A.enabled;
        this.id = e,
        this.enabled = A,
        this.start = Date.now()
    }
    var Ps = (Xs.instanceCount = 1,
    Xs);
    function Xs(A, e) {
        this.windowBounds = e,
        this.instanceName = "#" + Xs.instanceCount++,
        this.logger = new Rs({
            id: this.instanceName,
            enabled: A.logging
        }),
        this.cache = null !== (e = A.cache) && void 0 !== e ? e : new On(this,A)
    }
    "undefined" != typeof window && Tn.setContext(window);
    var Js = function(u, F) {
        return a(void 0, void 0, void 0, function() {
            var e, t, r, B, n, s, o, i, Q, c, a, g, w, U, l, C;
            return H(this, function(A) {
                switch (A.label) {
                case 0:
                    if (!u || "object" != typeof u)
                        return [2, Promise.reject("Invalid element provided as first argument")];
                    if (!(e = u.ownerDocument))
                        throw new Error("Element is not attached to a Document");
                    if (!(t = e.defaultView))
                        throw new Error("Document is not attached to a Window");
                    return w = {
                        allowTaint: null !== (U = F.allowTaint) && void 0 !== U && U,
                        imageTimeout: null !== (c = F.imageTimeout) && void 0 !== c ? c : 15e3,
                        proxy: F.proxy,
                        useCORS: null !== (a = F.useCORS) && void 0 !== a && a
                    },
                    U = h({
                        logging: null === (g = F.logging) || void 0 === g || g,
                        cache: F.cache
                    }, w),
                    c = {
                        windowWidth: null !== (c = F.windowWidth) && void 0 !== c ? c : t.innerWidth,
                        windowHeight: null !== (a = F.windowHeight) && void 0 !== a ? a : t.innerHeight,
                        scrollX: null !== (g = F.scrollX) && void 0 !== g ? g : t.pageXOffset,
                        scrollY: null !== (w = F.scrollY) && void 0 !== w ? w : t.pageYOffset
                    },
                    a = new d(c.scrollX,c.scrollY,c.windowWidth,c.windowHeight),
                    g = new Ps(U,a),
                    c = null !== (w = F.foreignObjectRendering) && void 0 !== w && w,
                    w = {
                        allowTaint: null !== (U = F.allowTaint) && void 0 !== U && U,
                        onclone: F.onclone,
                        ignoreElements: F.ignoreElements,
                        inlineImages: c,
                        copyStyles: c
                    },
                    g.logger.debug("Starting document clone with size " + a.width + "x" + a.height + " scrolled to " + -a.left + "," + -a.top),
                    U = new dn(g,u,w),
                    (w = U.clonedReferenceElement) ? [4, U.toIFrame(e, a)] : [2, Promise.reject("Unable to find element in cloned iframe")];
                case 1:
                    return (r = A.sent(),
                    l = jB(w) || "HTML" === w.tagName ? function(A) {
                        var e = A.body
                          , t = A.documentElement;
                        if (!e || !t)
                            throw new Error("Unable to get document size");
                        A = Math.max(Math.max(e.scrollWidth, t.scrollWidth), Math.max(e.offsetWidth, t.offsetWidth), Math.max(e.clientWidth, t.clientWidth)),
                        t = Math.max(Math.max(e.scrollHeight, t.scrollHeight), Math.max(e.offsetHeight, t.offsetHeight), Math.max(e.clientHeight, t.clientHeight));
                        return new d(0,0,A,t)
                    }(w.ownerDocument) : f(g, w),
                    B = l.width,
                    n = l.height,
                    s = l.left,
                    o = l.top,
                    i = Ys(g, w, F.backgroundColor),
                    l = {
                        canvas: F.canvas,
                        backgroundColor: i,
                        scale: null !== (l = null !== (l = F.scale) && void 0 !== l ? l : t.devicePixelRatio) && void 0 !== l ? l : 1,
                        x: (null !== (l = F.x) && void 0 !== l ? l : 0) + s,
                        y: (null !== (l = F.y) && void 0 !== l ? l : 0) + o,
                        width: null !== (l = F.width) && void 0 !== l ? l : Math.ceil(B),
                        height: null !== (l = F.height) && void 0 !== l ? l : Math.ceil(n)
                    },
                    c) ? (g.logger.debug("Document cloned, using foreign object rendering"),
                    [4, new Os(g,l).render(w)]) : [3, 3];
                case 2:
                    return Q = A.sent(),
                    [3, 5];
                case 3:
                    return g.logger.debug("Document cloned, element located at " + s + "," + o + " with size " + B + "x" + n + " using computed rendering"),
                    g.logger.debug("Starting DOM parsing"),
                    C = kB(g, w),
                    i === C.styles.backgroundColor && (C.styles.backgroundColor = Le.TRANSPARENT),
                    g.logger.debug("Starting renderer for element at " + l.x + "," + l.y + " with size " + l.width + "x" + l.height),
                    [4, new bs(g,l).render(C)];
                case 4:
                    Q = A.sent(),
                    A.label = 5;
                case 5:
                    return null !== (C = F.removeContainer) && void 0 !== C && !C || dn.destroy(r) || g.logger.error("Cannot detach cloned iframe as it is not in the DOM anymore"),
                    g.logger.debug("Finished rendering"),
                    [2, Q]
                }
            })
        })
    }
      , Ys = function(A, e, t) {
        var r = e.ownerDocument
          , B = r.documentElement ? fe(A, getComputedStyle(r.documentElement).backgroundColor) : Le.TRANSPARENT
          , n = r.body ? fe(A, getComputedStyle(r.body).backgroundColor) : Le.TRANSPARENT
          , t = "string" == typeof t ? fe(A, t) : null === t ? Le.TRANSPARENT : 4294967295;
        return e === r.documentElement ? oe(B) ? oe(n) ? t : n : B : t
    };
    return function(A, e) {
        return Js(A, e = void 0 === e ? {} : e)
    }
});

// @fancyapps/ui/Fancybox v4.0.26
!function(t, e) {
    "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e((t = "undefined" != typeof globalThis ? globalThis : t || self).window = t.window || {})
}(this, (function(t) {
    "use strict";
    function e(t, e) {
        var i = Object.keys(t);
        if (Object.getOwnPropertySymbols) {
            var n = Object.getOwnPropertySymbols(t);
            e && (n = n.filter((function(e) {
                return Object.getOwnPropertyDescriptor(t, e).enumerable
            }
            ))),
            i.push.apply(i, n)
        }
        return i
    }
    function i(t) {
        for (var i = 1; i < arguments.length; i++) {
            var n = null != arguments[i] ? arguments[i] : {};
            i % 2 ? e(Object(n), !0).forEach((function(e) {
                r(t, e, n[e])
            }
            )) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : e(Object(n)).forEach((function(e) {
                Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
            }
            ))
        }
        return t
    }
    function n(t) {
        return n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        }
        : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }
        ,
        n(t)
    }
    function o(t, e) {
        if (!(t instanceof e))
            throw new TypeError("Cannot call a class as a function")
    }
    function a(t, e) {
        for (var i = 0; i < e.length; i++) {
            var n = e[i];
            n.enumerable = n.enumerable || !1,
            n.configurable = !0,
            "value"in n && (n.writable = !0),
            Object.defineProperty(t, n.key, n)
        }
    }
    function s(t, e, i) {
        return e && a(t.prototype, e),
        i && a(t, i),
        Object.defineProperty(t, "prototype", {
            writable: !1
        }),
        t
    }
    function r(t, e, i) {
        return e in t ? Object.defineProperty(t, e, {
            value: i,
            enumerable: !0,
            configurable: !0,
            writable: !0
        }) : t[e] = i,
        t
    }
    function l(t, e) {
        if ("function" != typeof e && null !== e)
            throw new TypeError("Super expression must either be null or a function");
        t.prototype = Object.create(e && e.prototype, {
            constructor: {
                value: t,
                writable: !0,
                configurable: !0
            }
        }),
        Object.defineProperty(t, "prototype", {
            writable: !1
        }),
        e && h(t, e)
    }
    function c(t) {
        return c = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
            return t.__proto__ || Object.getPrototypeOf(t)
        }
        ,
        c(t)
    }
    function h(t, e) {
        return h = Object.setPrototypeOf || function(t, e) {
            return t.__proto__ = e,
            t
        }
        ,
        h(t, e)
    }
    function d(t) {
        if (void 0 === t)
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
        return t
    }
    function u(t, e) {
        if (e && ("object" == typeof e || "function" == typeof e))
            return e;
        if (void 0 !== e)
            throw new TypeError("Derived constructors may only return object or undefined");
        return d(t)
    }
    function f(t) {
        var e = function() {
            if ("undefined" == typeof Reflect || !Reflect.construct)
                return !1;
            if (Reflect.construct.sham)
                return !1;
            if ("function" == typeof Proxy)
                return !0;
            try {
                return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}
                ))),
                !0
            } catch (t) {
                return !1
            }
        }();
        return function() {
            var i, n = c(t);
            if (e) {
                var o = c(this).constructor;
                i = Reflect.construct(n, arguments, o)
            } else
                i = n.apply(this, arguments);
            return u(this, i)
        }
    }
    function v(t, e) {
        for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = c(t)); )
            ;
        return t
    }
    function p() {
        return p = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(t, e, i) {
            var n = v(t, e);
            if (n) {
                var o = Object.getOwnPropertyDescriptor(n, e);
                return o.get ? o.get.call(arguments.length < 3 ? t : i) : o.value
            }
        }
        ,
        p.apply(this, arguments)
    }
    function g(t, e) {
        return function(t) {
            if (Array.isArray(t))
                return t
        }(t) || function(t, e) {
            var i = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];
            if (null == i)
                return;
            var n, o, a = [], s = !0, r = !1;
            try {
                for (i = i.call(t); !(s = (n = i.next()).done) && (a.push(n.value),
                !e || a.length !== e); s = !0)
                    ;
            } catch (t) {
                r = !0,
                o = t
            } finally {
                try {
                    s || null == i.return || i.return()
                } finally {
                    if (r)
                        throw o
                }
            }
            return a
        }(t, e) || y(t, e) || function() {
            throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
        }()
    }
    function m(t) {
        return function(t) {
            if (Array.isArray(t))
                return b(t)
        }(t) || function(t) {
            if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t["@@iterator"])
                return Array.from(t)
        }(t) || y(t) || function() {
            throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
        }()
    }
    function y(t, e) {
        if (t) {
            if ("string" == typeof t)
                return b(t, e);
            var i = Object.prototype.toString.call(t).slice(8, -1);
            return "Object" === i && t.constructor && (i = t.constructor.name),
            "Map" === i || "Set" === i ? Array.from(t) : "Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? b(t, e) : void 0
        }
    }
    function b(t, e) {
        (null == e || e > t.length) && (e = t.length);
        for (var i = 0, n = new Array(e); i < e; i++)
            n[i] = t[i];
        return n
    }
    function x(t, e) {
        var i = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];
        if (!i) {
            if (Array.isArray(t) || (i = y(t)) || e && t && "number" == typeof t.length) {
                i && (t = i);
                var n = 0
                  , o = function() {};
                return {
                    s: o,
                    n: function() {
                        return n >= t.length ? {
                            done: !0
                        } : {
                            done: !1,
                            value: t[n++]
                        }
                    },
                    e: function(t) {
                        throw t
                    },
                    f: o
                }
            }
            throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
        }
        var a, s = !0, r = !1;
        return {
            s: function() {
                i = i.call(t)
            },
            n: function() {
                var t = i.next();
                return s = t.done,
                t
            },
            e: function(t) {
                r = !0,
                a = t
            },
            f: function() {
                try {
                    s || null == i.return || i.return()
                } finally {
                    if (r)
                        throw a
                }
            }
        }
    }
    var w = function(t) {
        return "object" === n(t) && null !== t && t.constructor === Object && "[object Object]" === Object.prototype.toString.call(t)
    }
      , k = function t() {
        for (var e = !1, i = arguments.length, o = new Array(i), a = 0; a < i; a++)
            o[a] = arguments[a];
        "boolean" == typeof o[0] && (e = o.shift());
        var s = o[0];
        if (!s || "object" !== n(s))
            throw new Error("extendee must be an object");
        for (var r = o.slice(1), l = r.length, c = 0; c < l; c++) {
            var h = r[c];
            for (var d in h)
                if (h.hasOwnProperty(d)) {
                    var u = h[d];
                    if (e && (Array.isArray(u) || w(u))) {
                        var f = Array.isArray(u) ? [] : {};
                        s[d] = t(!0, s.hasOwnProperty(d) ? s[d] : f, u)
                    } else
                        s[d] = u
                }
        }
        return s
    }
      , S = function(t) {
        var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1e4;
        return t = parseFloat(t) || 0,
        Math.round((t + Number.EPSILON) * e) / e
    }
      , C = function t(e) {
        return !!(e && "object" === n(e) && e instanceof Element && e !== document.body) && (!e.__Panzoom && (function(t) {
            var e = getComputedStyle(t)["overflow-y"]
              , i = getComputedStyle(t)["overflow-x"]
              , n = ("scroll" === e || "auto" === e) && Math.abs(t.scrollHeight - t.clientHeight) > 1
              , o = ("scroll" === i || "auto" === i) && Math.abs(t.scrollWidth - t.clientWidth) > 1;
            return n || o
        }(e) ? e : t(e.parentNode)))
    }
      , $ = "undefined" != typeof window && window.ResizeObserver || function() {
        function t(e) {
            o(this, t),
            this.observables = [],
            this.boundCheck = this.check.bind(this),
            this.boundCheck(),
            this.callback = e
        }
        return s(t, [{
            key: "observe",
            value: function(t) {
                if (!this.observables.some((function(e) {
                    return e.el === t
                }
                ))) {
                    var e = {
                        el: t,
                        size: {
                            height: t.clientHeight,
                            width: t.clientWidth
                        }
                    };
                    this.observables.push(e)
                }
            }
        }, {
            key: "unobserve",
            value: function(t) {
                this.observables = this.observables.filter((function(e) {
                    return e.el !== t
                }
                ))
            }
        }, {
            key: "disconnect",
            value: function() {
                this.observables = []
            }
        }, {
            key: "check",
            value: function() {
                var t = this.observables.filter((function(t) {
                    var e = t.el.clientHeight
                      , i = t.el.clientWidth;
                    if (t.size.height !== e || t.size.width !== i)
                        return t.size.height = e,
                        t.size.width = i,
                        !0
                }
                )).map((function(t) {
                    return t.el
                }
                ));
                t.length > 0 && this.callback(t),
                window.requestAnimationFrame(this.boundCheck)
            }
        }]),
        t
    }()
      , E = s((function t(e) {
        o(this, t),
        this.id = self.Touch && e instanceof Touch ? e.identifier : -1,
        this.pageX = e.pageX,
        this.pageY = e.pageY,
        this.clientX = e.clientX,
        this.clientY = e.clientY
    }
    ))
      , P = function(t, e) {
        return e ? Math.sqrt(Math.pow(e.clientX - t.clientX, 2) + Math.pow(e.clientY - t.clientY, 2)) : 0
    }
      , T = function(t, e) {
        return e ? {
            clientX: (t.clientX + e.clientX) / 2,
            clientY: (t.clientY + e.clientY) / 2
        } : t
    }
      , L = function(t) {
        return "changedTouches"in t
    }
      , _ = function() {
        function t(e) {
            var i = this
              , n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}
              , a = n.start
              , s = void 0 === a ? function() {
                return !0
            }
            : a
              , r = n.move
              , l = void 0 === r ? function() {}
            : r
              , c = n.end
              , h = void 0 === c ? function() {}
            : c;
            o(this, t),
            this._element = e,
            this.startPointers = [],
            this.currentPointers = [],
            this._pointerStart = function(t) {
                if (!(t.buttons > 0 && 0 !== t.button)) {
                    var e = new E(t);
                    i.currentPointers.some((function(t) {
                        return t.id === e.id
                    }
                    )) || i._triggerPointerStart(e, t) && (window.addEventListener("mousemove", i._move),
                    window.addEventListener("mouseup", i._pointerEnd))
                }
            }
            ,
            this._touchStart = function(t) {
                for (var e = 0, n = Array.from(t.changedTouches || []); e < n.length; e++) {
                    var o = n[e];
                    i._triggerPointerStart(new E(o), t)
                }
            }
            ,
            this._move = function(t) {
                var e, n = i.currentPointers.slice(), o = L(t) ? Array.from(t.changedTouches).map((function(t) {
                    return new E(t)
                }
                )) : [new E(t)], a = [], s = x(o);
                try {
                    var r = function() {
                        var t = e.value
                          , n = i.currentPointers.findIndex((function(e) {
                            return e.id === t.id
                        }
                        ));
                        if (n < 0)
                            return "continue";
                        a.push(t),
                        i.currentPointers[n] = t
                    };
                    for (s.s(); !(e = s.n()).done; )
                        r()
                } catch (t) {
                    s.e(t)
                } finally {
                    s.f()
                }
                i._moveCallback(n, i.currentPointers.slice(), t)
            }
            ,
            this._triggerPointerEnd = function(t, e) {
                var n = i.currentPointers.findIndex((function(e) {
                    return e.id === t.id
                }
                ));
                return !(n < 0) && (i.currentPointers.splice(n, 1),
                i.startPointers.splice(n, 1),
                i._endCallback(t, e),
                !0)
            }
            ,
            this._pointerEnd = function(t) {
                t.buttons > 0 && 0 !== t.button || i._triggerPointerEnd(new E(t), t) && (window.removeEventListener("mousemove", i._move, {
                    passive: !1
                }),
                window.removeEventListener("mouseup", i._pointerEnd, {
                    passive: !1
                }))
            }
            ,
            this._touchEnd = function(t) {
                for (var e = 0, n = Array.from(t.changedTouches || []); e < n.length; e++) {
                    var o = n[e];
                    i._triggerPointerEnd(new E(o), t)
                }
            }
            ,
            this._startCallback = s,
            this._moveCallback = l,
            this._endCallback = h,
            this._element.addEventListener("mousedown", this._pointerStart, {
                passive: !1
            }),
            this._element.addEventListener("touchstart", this._touchStart, {
                passive: !1
            }),
            this._element.addEventListener("touchmove", this._move, {
                passive: !1
            }),
            this._element.addEventListener("touchend", this._touchEnd),
            this._element.addEventListener("touchcancel", this._touchEnd)
        }
        return s(t, [{
            key: "stop",
            value: function() {
                this._element.removeEventListener("mousedown", this._pointerStart, {
                    passive: !1
                }),
                this._element.removeEventListener("touchstart", this._touchStart, {
                    passive: !1
                }),
                this._element.removeEventListener("touchmove", this._move, {
                    passive: !1
                }),
                this._element.removeEventListener("touchend", this._touchEnd),
                this._element.removeEventListener("touchcancel", this._touchEnd),
                window.removeEventListener("mousemove", this._move),
                window.removeEventListener("mouseup", this._pointerEnd)
            }
        }, {
            key: "_triggerPointerStart",
            value: function(t, e) {
                return !!this._startCallback(t, e) && (this.currentPointers.push(t),
                this.startPointers.push(t),
                !0)
            }
        }]),
        t
    }()
      , A = function(t, e) {
        return t.split(".").reduce((function(t, e) {
            return t && t[e]
        }
        ), e)
    }
      , O = function() {
        function t() {
            var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
            o(this, t),
            this.options = k(!0, {}, e),
            this.plugins = [],
            this.events = {};
            for (var i = 0, n = ["on", "once"]; i < n.length; i++)
                for (var a = n[i], s = 0, r = Object.entries(this.options[a] || {}); s < r.length; s++) {
                    var l = r[s];
                    this[a].apply(this, m(l))
                }
        }
        return s(t, [{
            key: "option",
            value: function(t, e) {
                t = String(t);
                var i = A(t, this.options);
                if ("function" == typeof i) {
                    for (var n, o = arguments.length, a = new Array(o > 2 ? o - 2 : 0), s = 2; s < o; s++)
                        a[s - 2] = arguments[s];
                    i = (n = i).call.apply(n, [this, this].concat(a))
                }
                return void 0 === i ? e : i
            }
        }, {
            key: "localize",
            value: function(t) {
                var e = this
                  , i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];
                return t = (t = String(t).replace(/\{\{(\w+).?(\w+)?\}\}/g, (function(t, n, o) {
                    var a = "";
                    o ? a = e.option("".concat(n[0] + n.toLowerCase().substring(1), ".l10n.").concat(o)) : n && (a = e.option("l10n.".concat(n))),
                    a || (a = t);
                    for (var s = 0; s < i.length; s++)
                        a = a.split(i[s][0]).join(i[s][1]);
                    return a
                }
                ))).replace(/\{\{(.*)\}\}/, (function(t, e) {
                    return e
                }
                ))
            }
        }, {
            key: "on",
            value: function(t, e) {
                var i = this;
                if (w(t)) {
                    for (var n = 0, o = Object.entries(t); n < o.length; n++) {
                        var a = o[n];
                        this.on.apply(this, m(a))
                    }
                    return this
                }
                return String(t).split(" ").forEach((function(t) {
                    var n = i.events[t] = i.events[t] || [];
                    -1 == n.indexOf(e) && n.push(e)
                }
                )),
                this
            }
        }, {
            key: "once",
            value: function(t, e) {
                var i = this;
                if (w(t)) {
                    for (var n = 0, o = Object.entries(t); n < o.length; n++) {
                        var a = o[n];
                        this.once.apply(this, m(a))
                    }
                    return this
                }
                return String(t).split(" ").forEach((function(t) {
                    var n = function n() {
                        i.off(t, n);
                        for (var o = arguments.length, a = new Array(o), s = 0; s < o; s++)
                            a[s] = arguments[s];
                        e.call.apply(e, [i, i].concat(a))
                    };
                    n._ = e,
                    i.on(t, n)
                }
                )),
                this
            }
        }, {
            key: "off",
            value: function(t, e) {
                var i = this;
                if (!w(t))
                    return t.split(" ").forEach((function(t) {
                        var n = i.events[t];
                        if (!n || !n.length)
                            return i;
                        for (var o = -1, a = 0, s = n.length; a < s; a++) {
                            var r = n[a];
                            if (r && (r === e || r._ === e)) {
                                o = a;
                                break
                            }
                        }
                        -1 != o && n.splice(o, 1)
                    }
                    )),
                    this;
                for (var n = 0, o = Object.entries(t); n < o.length; n++) {
                    var a = o[n];
                    this.off.apply(this, m(a))
                }
            }
        }, {
            key: "trigger",
            value: function(t) {
                for (var e = arguments.length, i = new Array(e > 1 ? e - 1 : 0), n = 1; n < e; n++)
                    i[n - 1] = arguments[n];
                var o, a = x(m(this.events[t] || []).slice());
                try {
                    for (a.s(); !(o = a.n()).done; ) {
                        var s = o.value;
                        if (s && !1 === s.call.apply(s, [this, this].concat(i)))
                            return !1
                    }
                } catch (t) {
                    a.e(t)
                } finally {
                    a.f()
                }
                var r, l = x(m(this.events["*"] || []).slice());
                try {
                    for (l.s(); !(r = l.n()).done; ) {
                        var c = r.value;
                        if (c && !1 === c.call.apply(c, [this, t, this].concat(i)))
                            return !1
                    }
                } catch (t) {
                    l.e(t)
                } finally {
                    l.f()
                }
                return !0
            }
        }, {
            key: "attachPlugins",
            value: function(t) {
                for (var e = {}, i = 0, n = Object.entries(t || {}); i < n.length; i++) {
                    var o = g(n[i], 2)
                      , a = o[0]
                      , s = o[1];
                    !1 === this.options[a] || this.plugins[a] || (this.options[a] = k({}, s.defaults || {}, this.options[a]),
                    e[a] = new s(this))
                }
                for (var r = 0, l = Object.entries(e); r < l.length; r++) {
                    var c = g(l[r], 2);
                    c[0],
                    c[1].attach(this)
                }
                return this.plugins = Object.assign({}, this.plugins, e),
                this
            }
        }, {
            key: "detachPlugins",
            value: function() {
                for (var t in this.plugins) {
                    var e = void 0;
                    (e = this.plugins[t]) && "function" == typeof e.detach && e.detach(this)
                }
                return this.plugins = {},
                this
            }
        }]),
        t
    }()
      , z = {
        touch: !0,
        zoom: !0,
        pinchToZoom: !0,
        panOnlyZoomed: !1,
        lockAxis: !1,
        friction: .64,
        decelFriction: .88,
        zoomFriction: .74,
        bounceForce: .2,
        baseScale: 1,
        minScale: 1,
        maxScale: 2,
        step: .5,
        textSelection: !1,
        click: "toggleZoom",
        wheel: "zoom",
        wheelFactor: 42,
        wheelLimit: 5,
        draggableClass: "is-draggable",
        draggingClass: "is-dragging",
        ratio: 1
    }
      , M = function(t) {
        l(n, t);
        var e = f(n);
        function n(t) {
            var i, a = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
            o(this, n),
            (i = e.call(this, k(!0, {}, z, a))).state = "init",
            i.$container = t;
            for (var s = 0, r = ["onLoad", "onWheel", "onClick"]; s < r.length; s++) {
                var l = r[s];
                i[l] = i[l].bind(d(i))
            }
            return i.initLayout(),
            i.resetValues(),
            i.attachPlugins(n.Plugins),
            i.trigger("init"),
            i.updateMetrics(),
            i.attachEvents(),
            i.trigger("ready"),
            !1 === i.option("centerOnStart") ? i.state = "ready" : i.panTo({
                friction: 0
            }),
            t.__Panzoom = d(i),
            i
        }
        return s(n, [{
            key: "initLayout",
            value: function() {
                var t = this.$container;
                if (!(t instanceof HTMLElement))
                    throw new Error("Panzoom: Container not found");
                var e = this.option("content") || t.querySelector(".panzoom__content");
                if (!e)
                    throw new Error("Panzoom: Content not found");
                this.$content = e;
                var i, n = this.option("viewport") || t.querySelector(".panzoom__viewport");
                n || !1 === this.option("wrapInner") || ((n = document.createElement("div")).classList.add("panzoom__viewport"),
                (i = n).append.apply(i, m(t.childNodes)),
                t.appendChild(n));
                this.$viewport = n || e.parentNode
            }
        }, {
            key: "resetValues",
            value: function() {
                this.updateRate = this.option("updateRate", /iPhone|iPad|iPod|Android/i.test(navigator.userAgent) ? 250 : 24),
                this.container = {
                    width: 0,
                    height: 0
                },
                this.viewport = {
                    width: 0,
                    height: 0
                },
                this.content = {
                    origWidth: 0,
                    origHeight: 0,
                    width: 0,
                    height: 0,
                    x: this.option("x", 0),
                    y: this.option("y", 0),
                    scale: this.option("baseScale")
                },
                this.transform = {
                    x: 0,
                    y: 0,
                    scale: 1
                },
                this.resetDragPosition()
            }
        }, {
            key: "onLoad",
            value: function(t) {
                this.updateMetrics(),
                this.panTo({
                    scale: this.option("baseScale"),
                    friction: 0
                }),
                this.trigger("load", t)
            }
        }, {
            key: "onClick",
            value: function(t) {
                if (!t.defaultPrevented)
                    if (this.option("textSelection") && window.getSelection().toString().length)
                        t.stopPropagation();
                    else {
                        var e = this.$content.getClientRects()[0];
                        if ("ready" !== this.state && (this.dragPosition.midPoint || Math.abs(e.top - this.dragStart.rect.top) > 1 || Math.abs(e.left - this.dragStart.rect.left) > 1))
                            return t.preventDefault(),
                            void t.stopPropagation();
                        !1 !== this.trigger("click", t) && this.option("zoom") && "toggleZoom" === this.option("click") && (t.preventDefault(),
                        t.stopPropagation(),
                        this.zoomWithClick(t))
                    }
            }
        }, {
            key: "onWheel",
            value: function(t) {
                !1 !== this.trigger("wheel", t) && this.option("zoom") && this.option("wheel") && this.zoomWithWheel(t)
            }
        }, {
            key: "zoomWithWheel",
            value: function(t) {
                void 0 === this.changedDelta && (this.changedDelta = 0);
                var e = Math.max(-1, Math.min(1, -t.deltaY || -t.deltaX || t.wheelDelta || -t.detail))
                  , i = this.content.scale
                  , n = i * (100 + e * this.option("wheelFactor")) / 100;
                if (e < 0 && Math.abs(i - this.option("minScale")) < .01 || e > 0 && Math.abs(i - this.option("maxScale")) < .01 ? (this.changedDelta += Math.abs(e),
                n = i) : (this.changedDelta = 0,
                n = Math.max(Math.min(n, this.option("maxScale")), this.option("minScale"))),
                !(this.changedDelta > this.option("wheelLimit")) && (t.preventDefault(),
                n !== i)) {
                    var o = this.$content.getBoundingClientRect()
                      , a = t.clientX - o.left
                      , s = t.clientY - o.top;
                    this.zoomTo(n, {
                        x: a,
                        y: s
                    })
                }
            }
        }, {
            key: "zoomWithClick",
            value: function(t) {
                var e = this.$content.getClientRects()[0]
                  , i = t.clientX - e.left
                  , n = t.clientY - e.top;
                this.toggleZoom({
                    x: i,
                    y: n
                })
            }
        }, {
            key: "attachEvents",
            value: function() {
                var t = this;
                this.$content.addEventListener("load", this.onLoad),
                this.$container.addEventListener("wheel", this.onWheel, {
                    passive: !1
                }),
                this.$container.addEventListener("click", this.onClick, {
                    passive: !1
                }),
                this.initObserver();
                var e = new _(this.$container,{
                    start: function(i, n) {
                        if (!t.option("touch"))
                            return !1;
                        if (t.velocity.scale < 0)
                            return !1;
                        var o = n.composedPath()[0];
                        if (!e.currentPointers.length) {
                            if (-1 !== ["BUTTON", "TEXTAREA", "OPTION", "INPUT", "SELECT", "VIDEO"].indexOf(o.nodeName))
                                return !1;
                            if (t.option("textSelection") && function(t, e, i) {
                                for (var n = t.childNodes, o = document.createRange(), a = 0; a < n.length; a++) {
                                    var s = n[a];
                                    if (s.nodeType === Node.TEXT_NODE) {
                                        o.selectNodeContents(s);
                                        var r = o.getBoundingClientRect();
                                        if (e >= r.left && i >= r.top && e <= r.right && i <= r.bottom)
                                            return s
                                    }
                                }
                                return !1
                            }(o, i.clientX, i.clientY))
                                return !1
                        }
                        return !C(o) && (!1 !== t.trigger("touchStart", n) && ("mousedown" === n.type && n.preventDefault(),
                        t.state = "pointerdown",
                        t.resetDragPosition(),
                        t.dragPosition.midPoint = null,
                        t.dragPosition.time = Date.now(),
                        !0))
                    },
                    move: function(i, n, o) {
                        if ("pointerdown" === t.state)
                            if (!1 !== t.trigger("touchMove", o)) {
                                if (!(n.length < 2 && !0 === t.option("panOnlyZoomed") && t.content.width <= t.viewport.width && t.content.height <= t.viewport.height && t.transform.scale <= t.option("baseScale")) && (!(n.length > 1) || t.option("zoom") && !1 !== t.option("pinchToZoom"))) {
                                    var a = T(i[0], i[1])
                                      , s = T(n[0], n[1])
                                      , r = s.clientX - a.clientX
                                      , l = s.clientY - a.clientY
                                      , c = P(i[0], i[1])
                                      , h = P(n[0], n[1])
                                      , d = c && h ? h / c : 1;
                                    t.dragOffset.x += r,
                                    t.dragOffset.y += l,
                                    t.dragOffset.scale *= d,
                                    t.dragOffset.time = Date.now() - t.dragPosition.time;
                                    var u = 1 === t.dragStart.scale && t.option("lockAxis");
                                    if (u && !t.lockAxis) {
                                        if (Math.abs(t.dragOffset.x) < 6 && Math.abs(t.dragOffset.y) < 6)
                                            return void o.preventDefault();
                                        var f = Math.abs(180 * Math.atan2(t.dragOffset.y, t.dragOffset.x) / Math.PI);
                                        t.lockAxis = f > 45 && f < 135 ? "y" : "x"
                                    }
                                    if ("xy" === u || "y" !== t.lockAxis) {
                                        if (o.preventDefault(),
                                        o.stopPropagation(),
                                        o.stopImmediatePropagation(),
                                        t.lockAxis && (t.dragOffset["x" === t.lockAxis ? "y" : "x"] = 0),
                                        t.$container.classList.add(t.option("draggingClass")),
                                        t.transform.scale === t.option("baseScale") && "y" === t.lockAxis || (t.dragPosition.x = t.dragStart.x + t.dragOffset.x),
                                        t.transform.scale === t.option("baseScale") && "x" === t.lockAxis || (t.dragPosition.y = t.dragStart.y + t.dragOffset.y),
                                        t.dragPosition.scale = t.dragStart.scale * t.dragOffset.scale,
                                        n.length > 1) {
                                            var v = T(e.startPointers[0], e.startPointers[1])
                                              , p = v.clientX - t.dragStart.rect.x
                                              , g = v.clientY - t.dragStart.rect.y
                                              , m = t.getZoomDelta(t.content.scale * t.dragOffset.scale, p, g)
                                              , y = m.deltaX
                                              , b = m.deltaY;
                                            t.dragPosition.x -= y,
                                            t.dragPosition.y -= b,
                                            t.dragPosition.midPoint = s
                                        } else
                                            t.setDragResistance();
                                        t.transform = {
                                            x: t.dragPosition.x,
                                            y: t.dragPosition.y,
                                            scale: t.dragPosition.scale
                                        },
                                        t.startAnimation()
                                    }
                                }
                            } else
                                o.preventDefault()
                    },
                    end: function(n, o) {
                        if ("pointerdown" === t.state)
                            if (t._dragOffset = i({}, t.dragOffset),
                            e.currentPointers.length)
                                t.resetDragPosition();
                            else if (t.state = "decel",
                            t.friction = t.option("decelFriction"),
                            t.recalculateTransform(),
                            t.$container.classList.remove(t.option("draggingClass")),
                            !1 !== t.trigger("touchEnd", o) && "decel" === t.state) {
                                var a = t.option("minScale");
                                if (t.transform.scale < a)
                                    t.zoomTo(a, {
                                        friction: .64
                                    });
                                else {
                                    var s = t.option("maxScale");
                                    if (t.transform.scale - s > .01) {
                                        var r = t.dragPosition.midPoint || n
                                          , l = t.$content.getClientRects()[0];
                                        t.zoomTo(s, {
                                            friction: .64,
                                            x: r.clientX - l.left,
                                            y: r.clientY - l.top
                                        })
                                    } else
                                        ;
                                }
                            }
                    }
                });
                this.pointerTracker = e
            }
        }, {
            key: "initObserver",
            value: function() {
                var t = this;
                this.resizeObserver || (this.resizeObserver = new $((function() {
                    t.updateTimer || (t.updateTimer = setTimeout((function() {
                        var e = t.$container.getBoundingClientRect();
                        e.width && e.height ? ((Math.abs(e.width - t.container.width) > 1 || Math.abs(e.height - t.container.height) > 1) && (t.isAnimating() && t.endAnimation(!0),
                        t.updateMetrics(),
                        t.panTo({
                            x: t.content.x,
                            y: t.content.y,
                            scale: t.option("baseScale"),
                            friction: 0
                        })),
                        t.updateTimer = null) : t.updateTimer = null
                    }
                    ), t.updateRate))
                }
                )),
                this.resizeObserver.observe(this.$container))
            }
        }, {
            key: "resetDragPosition",
            value: function() {
                this.lockAxis = null,
                this.friction = this.option("friction"),
                this.velocity = {
                    x: 0,
                    y: 0,
                    scale: 0
                };
                var t = this.content
                  , e = t.x
                  , n = t.y
                  , o = t.scale;
                this.dragStart = {
                    rect: this.$content.getBoundingClientRect(),
                    x: e,
                    y: n,
                    scale: o
                },
                this.dragPosition = i(i({}, this.dragPosition), {}, {
                    x: e,
                    y: n,
                    scale: o
                }),
                this.dragOffset = {
                    x: 0,
                    y: 0,
                    scale: 1,
                    time: 0
                }
            }
        }, {
            key: "updateMetrics",
            value: function(t) {
                !0 !== t && this.trigger("beforeUpdate");
                var e, n = this.$container, o = this.$content, a = this.$viewport, s = o instanceof HTMLImageElement, r = this.option("zoom"), l = this.option("resizeParent", r), c = this.option("width"), h = this.option("height"), d = c || (e = o,
                Math.max(parseFloat(e.naturalWidth || 0), parseFloat(e.width && e.width.baseVal && e.width.baseVal.value || 0), parseFloat(e.offsetWidth || 0), parseFloat(e.scrollWidth || 0))), u = h || function(t) {
                    return Math.max(parseFloat(t.naturalHeight || 0), parseFloat(t.height && t.height.baseVal && t.height.baseVal.value || 0), parseFloat(t.offsetHeight || 0), parseFloat(t.scrollHeight || 0))
                }(o);
                Object.assign(o.style, {
                    width: c ? "".concat(c, "px") : "",
                    height: h ? "".concat(h, "px") : "",
                    maxWidth: "",
                    maxHeight: ""
                }),
                l && Object.assign(a.style, {
                    width: "",
                    height: ""
                });
                var f = this.option("ratio");
                c = d = S(d * f),
                h = u = S(u * f);
                var v = o.getBoundingClientRect()
                  , p = a.getBoundingClientRect()
                  , g = a == n ? p : n.getBoundingClientRect()
                  , m = Math.max(a.offsetWidth, S(p.width))
                  , y = Math.max(a.offsetHeight, S(p.height))
                  , b = window.getComputedStyle(a);
                if (m -= parseFloat(b.paddingLeft) + parseFloat(b.paddingRight),
                y -= parseFloat(b.paddingTop) + parseFloat(b.paddingBottom),
                this.viewport.width = m,
                this.viewport.height = y,
                r) {
                    if (Math.abs(d - v.width) > .1 || Math.abs(u - v.height) > .1) {
                        var x = function(t, e, i, n) {
                            var o = Math.min(i / t || 0, n / e);
                            return {
                                width: t * o || 0,
                                height: e * o || 0
                            }
                        }(d, u, Math.min(d, v.width), Math.min(u, v.height));
                        c = S(x.width),
                        h = S(x.height)
                    }
                    Object.assign(o.style, {
                        width: "".concat(c, "px"),
                        height: "".concat(h, "px"),
                        transform: ""
                    })
                }
                if (l && (Object.assign(a.style, {
                    width: "".concat(c, "px"),
                    height: "".concat(h, "px")
                }),
                this.viewport = i(i({}, this.viewport), {}, {
                    width: c,
                    height: h
                })),
                s && r && "function" != typeof this.options.maxScale) {
                    var w = this.option("maxScale");
                    this.options.maxScale = function() {
                        return this.content.origWidth > 0 && this.content.fitWidth > 0 ? this.content.origWidth / this.content.fitWidth : w
                    }
                }
                this.content = i(i({}, this.content), {}, {
                    origWidth: d,
                    origHeight: u,
                    fitWidth: c,
                    fitHeight: h,
                    width: c,
                    height: h,
                    scale: 1,
                    isZoomable: r
                }),
                this.container = {
                    width: g.width,
                    height: g.height
                },
                !0 !== t && this.trigger("afterUpdate")
            }
        }, {
            key: "zoomIn",
            value: function(t) {
                this.zoomTo(this.content.scale + (t || this.option("step")))
            }
        }, {
            key: "zoomOut",
            value: function(t) {
                this.zoomTo(this.content.scale - (t || this.option("step")))
            }
        }, {
            key: "toggleZoom",
            value: function() {
                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
                  , e = this.option("maxScale")
                  , i = this.option("baseScale")
                  , n = this.content.scale > i + .5 * (e - i) ? i : e;
                this.zoomTo(n, t)
            }
        }, {
            key: "zoomTo",
            value: function() {
                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.option("baseScale")
                  , e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}
                  , i = e.x
                  , n = void 0 === i ? null : i
                  , o = e.y
                  , a = void 0 === o ? null : o;
                t = Math.max(Math.min(t, this.option("maxScale")), this.option("minScale"));
                var s = S(this.content.scale / (this.content.width / this.content.fitWidth), 1e7);
                null === n && (n = this.content.width * s * .5),
                null === a && (a = this.content.height * s * .5);
                var r = this.getZoomDelta(t, n, a)
                  , l = r.deltaX
                  , c = r.deltaY;
                n = this.content.x - l,
                a = this.content.y - c,
                this.panTo({
                    x: n,
                    y: a,
                    scale: t,
                    friction: this.option("zoomFriction")
                })
            }
        }, {
            key: "getZoomDelta",
            value: function(t) {
                var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0
                  , i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0
                  , n = this.content.fitWidth * this.content.scale
                  , o = this.content.fitHeight * this.content.scale
                  , a = e > 0 && n ? e / n : 0
                  , s = i > 0 && o ? i / o : 0
                  , r = this.content.fitWidth * t
                  , l = this.content.fitHeight * t
                  , c = (r - n) * a
                  , h = (l - o) * s;
                return {
                    deltaX: c,
                    deltaY: h
                }
            }
        }, {
            key: "panTo",
            value: function() {
                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
                  , e = t.x
                  , n = void 0 === e ? this.content.x : e
                  , o = t.y
                  , a = void 0 === o ? this.content.y : o
                  , s = t.scale
                  , r = t.friction
                  , l = void 0 === r ? this.option("friction") : r
                  , c = t.ignoreBounds
                  , h = void 0 !== c && c;
                if (s = s || this.content.scale || 1,
                !h) {
                    var d = this.getBounds(s)
                      , u = d.boundX
                      , f = d.boundY;
                    u && (n = Math.max(Math.min(n, u.to), u.from)),
                    f && (a = Math.max(Math.min(a, f.to), f.from))
                }
                this.friction = l,
                this.transform = i(i({}, this.transform), {}, {
                    x: n,
                    y: a,
                    scale: s
                }),
                l ? (this.state = "panning",
                this.velocity = {
                    x: (1 / this.friction - 1) * (n - this.content.x),
                    y: (1 / this.friction - 1) * (a - this.content.y),
                    scale: (1 / this.friction - 1) * (s - this.content.scale)
                },
                this.startAnimation()) : this.endAnimation()
            }
        }, {
            key: "startAnimation",
            value: function() {
                var t = this;
                this.rAF ? cancelAnimationFrame(this.rAF) : this.trigger("startAnimation"),
                this.rAF = requestAnimationFrame((function() {
                    return t.animate()
                }
                ))
            }
        }, {
            key: "animate",
            value: function() {
                var t = this;
                if (this.setEdgeForce(),
                this.setDragForce(),
                this.velocity.x *= this.friction,
                this.velocity.y *= this.friction,
                this.velocity.scale *= this.friction,
                this.content.x += this.velocity.x,
                this.content.y += this.velocity.y,
                this.content.scale += this.velocity.scale,
                this.isAnimating())
                    this.setTransform();
                else if ("pointerdown" !== this.state)
                    return void this.endAnimation();
                this.rAF = requestAnimationFrame((function() {
                    return t.animate()
                }
                ))
            }
        }, {
            key: "getBounds",
            value: function(t) {
                var e = this.boundX
                  , i = this.boundY;
                if (void 0 !== e && void 0 !== i)
                    return {
                        boundX: e,
                        boundY: i
                    };
                e = {
                    from: 0,
                    to: 0
                },
                i = {
                    from: 0,
                    to: 0
                },
                t = t || this.transform.scale;
                var n = this.content.fitWidth * t
                  , o = this.content.fitHeight * t
                  , a = this.viewport.width
                  , s = this.viewport.height;
                if (n < a) {
                    var r = S(.5 * (a - n));
                    e.from = r,
                    e.to = r
                } else
                    e.from = S(a - n);
                if (o < s) {
                    var l = .5 * (s - o);
                    i.from = l,
                    i.to = l
                } else
                    i.from = S(s - o);
                return {
                    boundX: e,
                    boundY: i
                }
            }
        }, {
            key: "setEdgeForce",
            value: function() {
                if ("decel" === this.state) {
                    var t, e, i, n, o = this.option("bounceForce"), a = this.getBounds(Math.max(this.transform.scale, this.content.scale)), s = a.boundX, r = a.boundY;
                    if (s && (t = this.content.x < s.from,
                    e = this.content.x > s.to),
                    r && (i = this.content.y < r.from,
                    n = this.content.y > r.to),
                    t || e) {
                        var l = ((t ? s.from : s.to) - this.content.x) * o
                          , c = this.content.x + (this.velocity.x + l) / this.friction;
                        c >= s.from && c <= s.to && (l += this.velocity.x),
                        this.velocity.x = l,
                        this.recalculateTransform()
                    }
                    if (i || n) {
                        var h = ((i ? r.from : r.to) - this.content.y) * o
                          , d = this.content.y + (h + this.velocity.y) / this.friction;
                        d >= r.from && d <= r.to && (h += this.velocity.y),
                        this.velocity.y = h,
                        this.recalculateTransform()
                    }
                }
            }
        }, {
            key: "setDragResistance",
            value: function() {
                if ("pointerdown" === this.state) {
                    var t, e, i, n, o = this.getBounds(this.dragPosition.scale), a = o.boundX, s = o.boundY;
                    if (a && (t = this.dragPosition.x < a.from,
                    e = this.dragPosition.x > a.to),
                    s && (i = this.dragPosition.y < s.from,
                    n = this.dragPosition.y > s.to),
                    (t || e) && (!t || !e)) {
                        var r = t ? a.from : a.to
                          , l = r - this.dragPosition.x;
                        this.dragPosition.x = r - .3 * l
                    }
                    if ((i || n) && (!i || !n)) {
                        var c = i ? s.from : s.to
                          , h = c - this.dragPosition.y;
                        this.dragPosition.y = c - .3 * h
                    }
                }
            }
        }, {
            key: "setDragForce",
            value: function() {
                "pointerdown" === this.state && (this.velocity.x = this.dragPosition.x - this.content.x,
                this.velocity.y = this.dragPosition.y - this.content.y,
                this.velocity.scale = this.dragPosition.scale - this.content.scale)
            }
        }, {
            key: "recalculateTransform",
            value: function() {
                this.transform.x = this.content.x + this.velocity.x / (1 / this.friction - 1),
                this.transform.y = this.content.y + this.velocity.y / (1 / this.friction - 1),
                this.transform.scale = this.content.scale + this.velocity.scale / (1 / this.friction - 1)
            }
        }, {
            key: "isAnimating",
            value: function() {
                return !(!this.friction || !(Math.abs(this.velocity.x) > .05 || Math.abs(this.velocity.y) > .05 || Math.abs(this.velocity.scale) > .05))
            }
        }, {
            key: "setTransform",
            value: function(t) {
                var e, n, o, a, s;
                (t ? (e = S(this.transform.x),
                n = S(this.transform.y),
                o = this.transform.scale,
                this.content = i(i({}, this.content), {}, {
                    x: e,
                    y: n,
                    scale: o
                })) : (e = S(this.content.x),
                n = S(this.content.y),
                o = this.content.scale / (this.content.width / this.content.fitWidth),
                this.content = i(i({}, this.content), {}, {
                    x: e,
                    y: n
                })),
                this.trigger("beforeTransform"),
                e = S(this.content.x),
                n = S(this.content.y),
                t && this.option("zoom")) ? (a = S(this.content.fitWidth * o),
                s = S(this.content.fitHeight * o),
                this.content.width = a,
                this.content.height = s,
                this.transform = i(i({}, this.transform), {}, {
                    width: a,
                    height: s,
                    scale: o
                }),
                Object.assign(this.$content.style, {
                    width: "".concat(a, "px"),
                    height: "".concat(s, "px"),
                    maxWidth: "none",
                    maxHeight: "none",
                    transform: "translate3d(".concat(e, "px, ").concat(n, "px, 0) scale(1)")
                })) : this.$content.style.transform = "translate3d(".concat(e, "px, ").concat(n, "px, 0) scale(").concat(o, ")");
                this.trigger("afterTransform")
            }
        }, {
            key: "endAnimation",
            value: function(t) {
                cancelAnimationFrame(this.rAF),
                this.rAF = null,
                this.velocity = {
                    x: 0,
                    y: 0,
                    scale: 0
                },
                this.setTransform(!0),
                this.state = "ready",
                this.handleCursor(),
                !0 !== t && this.trigger("endAnimation")
            }
        }, {
            key: "handleCursor",
            value: function() {
                var t = this.option("draggableClass");
                t && this.option("touch") && (1 == this.option("panOnlyZoomed") && this.content.width <= this.viewport.width && this.content.height <= this.viewport.height && this.transform.scale <= this.option("baseScale") ? this.$container.classList.remove(t) : this.$container.classList.add(t))
            }
        }, {
            key: "detachEvents",
            value: function() {
                this.$content.removeEventListener("load", this.onLoad),
                this.$container.removeEventListener("wheel", this.onWheel, {
                    passive: !1
                }),
                this.$container.removeEventListener("click", this.onClick, {
                    passive: !1
                }),
                this.pointerTracker && (this.pointerTracker.stop(),
                this.pointerTracker = null),
                this.resizeObserver && (this.resizeObserver.disconnect(),
                this.resizeObserver = null)
            }
        }, {
            key: "destroy",
            value: function() {
                "destroy" !== this.state && (this.state = "destroy",
                clearTimeout(this.updateTimer),
                this.updateTimer = null,
                cancelAnimationFrame(this.rAF),
                this.rAF = null,
                this.detachEvents(),
                this.detachPlugins(),
                this.resetDragPosition())
            }
        }]),
        n
    }(O);
    M.version = "4.0.26",
    M.Plugins = {};
    var I = function(t, e) {
        var i = 0;
        return function() {
            var n = (new Date).getTime();
            if (!(n - i < e))
                return i = n,
                t.apply(void 0, arguments)
        }
    }
      , F = function() {
        function t(e) {
            o(this, t),
            this.$container = null,
            this.$prev = null,
            this.$next = null,
            this.carousel = e,
            this.onRefresh = this.onRefresh.bind(this)
        }
        return s(t, [{
            key: "option",
            value: function(t) {
                return this.carousel.option("Navigation.".concat(t))
            }
        }, {
            key: "createButton",
            value: function(t) {
                var e, i = this, n = document.createElement("button");
                n.setAttribute("title", this.carousel.localize("{{".concat(t.toUpperCase(), "}}")));
                var o = this.option("classNames.button") + " " + this.option("classNames.".concat(t));
                return (e = n.classList).add.apply(e, m(o.split(" "))),
                n.setAttribute("tabindex", "0"),
                n.innerHTML = this.carousel.localize(this.option("".concat(t, "Tpl"))),
                n.addEventListener("click", (function(e) {
                    e.preventDefault(),
                    e.stopPropagation(),
                    i.carousel["slide".concat("next" === t ? "Next" : "Prev")]()
                }
                )),
                n
            }
        }, {
            key: "build",
            value: function() {
                var t;
                this.$container || (this.$container = document.createElement("div"),
                (t = this.$container.classList).add.apply(t, m(this.option("classNames.main").split(" "))),
                this.carousel.$container.appendChild(this.$container));
                this.$next || (this.$next = this.createButton("next"),
                this.$container.appendChild(this.$next)),
                this.$prev || (this.$prev = this.createButton("prev"),
                this.$container.appendChild(this.$prev))
            }
        }, {
            key: "onRefresh",
            value: function() {
                var t = this.carousel.pages.length;
                t <= 1 || t > 1 && this.carousel.elemDimWidth < this.carousel.wrapDimWidth && !Number.isInteger(this.carousel.option("slidesPerPage")) ? this.cleanup() : (this.build(),
                this.$prev.removeAttribute("disabled"),
                this.$next.removeAttribute("disabled"),
                this.carousel.option("infiniteX", this.carousel.option("infinite")) || (this.carousel.page <= 0 && this.$prev.setAttribute("disabled", ""),
                this.carousel.page >= t - 1 && this.$next.setAttribute("disabled", "")))
            }
        }, {
            key: "cleanup",
            value: function() {
                this.$prev && this.$prev.remove(),
                this.$prev = null,
                this.$next && this.$next.remove(),
                this.$next = null,
                this.$container && this.$container.remove(),
                this.$container = null
            }
        }, {
            key: "attach",
            value: function() {
                this.carousel.on("refresh change", this.onRefresh)
            }
        }, {
            key: "detach",
            value: function() {
                this.carousel.off("refresh change", this.onRefresh),
                this.cleanup()
            }
        }]),
        t
    }();
    F.defaults = {
        prevTpl: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M15 3l-9 9 9 9"/></svg>',
        nextTpl: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M9 3l9 9-9 9"/></svg>',
        classNames: {
            main: "carousel__nav",
            button: "carousel__button",
            next: "is-next",
            prev: "is-prev"
        }
    };
    var R = function() {
        function t(e) {
            o(this, t),
            this.carousel = e,
            this.$list = null,
            this.events = {
                change: this.onChange.bind(this),
                refresh: this.onRefresh.bind(this)
            }
        }
        return s(t, [{
            key: "buildList",
            value: function() {
                var t = this;
                if (!(this.carousel.pages.length < this.carousel.option("Dots.minSlideCount"))) {
                    var e = document.createElement("ol");
                    return e.classList.add("carousel__dots"),
                    e.addEventListener("click", (function(e) {
                        if ("page"in e.target.dataset) {
                            e.preventDefault(),
                            e.stopPropagation();
                            var i = parseInt(e.target.dataset.page, 10)
                              , n = t.carousel;
                            i !== n.page && (n.pages.length < 3 && n.option("infinite") ? n[0 == i ? "slidePrev" : "slideNext"]() : n.slideTo(i))
                        }
                    }
                    )),
                    this.$list = e,
                    this.carousel.$container.appendChild(e),
                    this.carousel.$container.classList.add("has-dots"),
                    e
                }
            }
        }, {
            key: "removeList",
            value: function() {
                this.$list && (this.$list.parentNode.removeChild(this.$list),
                this.$list = null),
                this.carousel.$container.classList.remove("has-dots")
            }
        }, {
            key: "rebuildDots",
            value: function() {
                var t = this
                  , e = this.$list
                  , i = !!e
                  , n = this.carousel.pages.length;
                if (n < 2)
                    i && this.removeList();
                else {
                    i || (e = this.buildList());
                    var o = this.$list.children.length;
                    if (o > n)
                        for (var a = n; a < o; a++)
                            this.$list.removeChild(this.$list.lastChild);
                    else {
                        for (var s = function(e) {
                            var i = document.createElement("li");
                            i.classList.add("carousel__dot"),
                            i.dataset.page = e,
                            i.setAttribute("role", "button"),
                            i.setAttribute("tabindex", "0"),
                            i.setAttribute("title", t.carousel.localize("{{GOTO}}", [["%d", e + 1]])),
                            i.addEventListener("keydown", (function(t) {
                                var e, n = t.code;
                                "Enter" === n || "NumpadEnter" === n ? e = i : "ArrowRight" === n ? e = i.nextSibling : "ArrowLeft" === n && (e = i.previousSibling),
                                e && e.click()
                            }
                            )),
                            t.$list.appendChild(i)
                        }, r = o; r < n; r++)
                            s(r);
                        this.setActiveDot()
                    }
                }
            }
        }, {
            key: "setActiveDot",
            value: function() {
                if (this.$list) {
                    this.$list.childNodes.forEach((function(t) {
                        t.classList.remove("is-selected")
                    }
                    ));
                    var t = this.$list.childNodes[this.carousel.page];
                    t && t.classList.add("is-selected")
                }
            }
        }, {
            key: "onChange",
            value: function() {
                this.setActiveDot()
            }
        }, {
            key: "onRefresh",
            value: function() {
                this.rebuildDots()
            }
        }, {
            key: "attach",
            value: function() {
                this.carousel.on(this.events)
            }
        }, {
            key: "detach",
            value: function() {
                this.removeList(),
                this.carousel.off(this.events),
                this.carousel = null
            }
        }]),
        t
    }()
      , N = function() {
        function t(e) {
            o(this, t),
            this.carousel = e,
            this.selectedIndex = null,
            this.friction = 0,
            this.onNavReady = this.onNavReady.bind(this),
            this.onNavClick = this.onNavClick.bind(this),
            this.onNavCreateSlide = this.onNavCreateSlide.bind(this),
            this.onTargetChange = this.onTargetChange.bind(this)
        }
        return s(t, [{
            key: "addAsTargetFor",
            value: function(t) {
                this.target = this.carousel,
                this.nav = t,
                this.attachEvents()
            }
        }, {
            key: "addAsNavFor",
            value: function(t) {
                this.target = t,
                this.nav = this.carousel,
                this.attachEvents()
            }
        }, {
            key: "attachEvents",
            value: function() {
                this.nav.options.initialSlide = this.target.options.initialPage,
                this.nav.on("ready", this.onNavReady),
                this.nav.on("createSlide", this.onNavCreateSlide),
                this.nav.on("Panzoom.click", this.onNavClick),
                this.target.on("change", this.onTargetChange),
                this.target.on("Panzoom.afterUpdate", this.onTargetChange)
            }
        }, {
            key: "onNavReady",
            value: function() {
                this.onTargetChange(!0)
            }
        }, {
            key: "onNavClick",
            value: function(t, e, i) {
                var n = i.target.closest(".carousel__slide");
                if (n) {
                    i.stopPropagation();
                    var o = parseInt(n.dataset.index, 10)
                      , a = this.target.findPageForSlide(o);
                    this.target.page !== a && this.target.slideTo(a, {
                        friction: this.friction
                    }),
                    this.markSelectedSlide(o)
                }
            }
        }, {
            key: "onNavCreateSlide",
            value: function(t, e) {
                e.index === this.selectedIndex && this.markSelectedSlide(e.index)
            }
        }, {
            key: "onTargetChange",
            value: function() {
                var t = this.target.pages[this.target.page].indexes[0]
                  , e = this.nav.findPageForSlide(t);
                this.nav.slideTo(e),
                this.markSelectedSlide(t)
            }
        }, {
            key: "markSelectedSlide",
            value: function(t) {
                this.selectedIndex = t,
                m(this.nav.slides).filter((function(t) {
                    return t.$el && t.$el.classList.remove("is-nav-selected")
                }
                ));
                var e = this.nav.slides[t];
                e && e.$el && e.$el.classList.add("is-nav-selected")
            }
        }, {
            key: "attach",
            value: function(t) {
                var e = t.options.Sync;
                (e.target || e.nav) && (e.target ? this.addAsNavFor(e.target) : e.nav && this.addAsTargetFor(e.nav),
                this.friction = e.friction)
            }
        }, {
            key: "detach",
            value: function() {
                this.nav && (this.nav.off("ready", this.onNavReady),
                this.nav.off("Panzoom.click", this.onNavClick),
                this.nav.off("createSlide", this.onNavCreateSlide)),
                this.target && (this.target.off("Panzoom.afterUpdate", this.onTargetChange),
                this.target.off("change", this.onTargetChange))
            }
        }]),
        t
    }();
    N.defaults = {
        friction: .92
    };
    var D = {
        Navigation: F,
        Dots: R,
        Sync: N
    }
      , B = {
        slides: [],
        preload: 0,
        slidesPerPage: "auto",
        initialPage: null,
        initialSlide: null,
        friction: .92,
        center: !0,
        infinite: !0,
        fill: !0,
        dragFree: !1,
        prefix: "",
        classNames: {
            viewport: "carousel__viewport",
            track: "carousel__track",
            slide: "carousel__slide",
            slideSelected: "is-selected"
        },
        l10n: {
            NEXT: "Next slide",
            PREV: "Previous slide",
            GOTO: "Go to slide #%d"
        }
    }
      , W = function(t) {
        l(n, t);
        var e = f(n);
        function n(t) {
            var i, a = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
            if (o(this, n),
            a = k(!0, {}, B, a),
            (i = e.call(this, a)).state = "init",
            i.$container = t,
            !(i.$container instanceof HTMLElement))
                throw new Error("No root element provided");
            return i.slideNext = I(i.slideNext.bind(d(i)), 250),
            i.slidePrev = I(i.slidePrev.bind(d(i)), 250),
            i.init(),
            t.__Carousel = d(i),
            i
        }
        return s(n, [{
            key: "init",
            value: function() {
                this.pages = [],
                this.page = this.pageIndex = null,
                this.prevPage = this.prevPageIndex = null,
                this.attachPlugins(n.Plugins),
                this.trigger("init"),
                this.initLayout(),
                this.initSlides(),
                this.updateMetrics(),
                this.$track && this.pages.length && (this.$track.style.transform = "translate3d(".concat(-1 * this.pages[this.page].left, "px, 0px, 0) scale(1)")),
                this.manageSlideVisiblity(),
                this.initPanzoom(),
                this.state = "ready",
                this.trigger("ready")
            }
        }, {
            key: "initLayout",
            value: function() {
                var t, e, i, n, o = this.option("prefix"), a = this.option("classNames");
                (this.$viewport = this.option("viewport") || this.$container.querySelector(".".concat(o).concat(a.viewport)),
                this.$viewport) || (this.$viewport = document.createElement("div"),
                (t = this.$viewport.classList).add.apply(t, m((o + a.viewport).split(" "))),
                (e = this.$viewport).append.apply(e, m(this.$container.childNodes)),
                this.$container.appendChild(this.$viewport));
                (this.$track = this.option("track") || this.$container.querySelector(".".concat(o).concat(a.track)),
                this.$track) || (this.$track = document.createElement("div"),
                (i = this.$track.classList).add.apply(i, m((o + a.track).split(" "))),
                (n = this.$track).append.apply(n, m(this.$viewport.childNodes)),
                this.$viewport.appendChild(this.$track))
            }
        }, {
            key: "initSlides",
            value: function() {
                var t = this;
                this.slides = [],
                this.$viewport.querySelectorAll(".".concat(this.option("prefix")).concat(this.option("classNames.slide"))).forEach((function(e) {
                    var i = {
                        $el: e,
                        isDom: !0
                    };
                    t.slides.push(i),
                    t.trigger("createSlide", i, t.slides.length)
                }
                )),
                Array.isArray(this.options.slides) && (this.slides = k(!0, m(this.slides), this.options.slides))
            }
        }, {
            key: "updateMetrics",
            value: function() {
                var t, e = this, n = 0, o = [];
                this.slides.forEach((function(i, a) {
                    var s = i.$el
                      , r = i.isDom || !t ? e.getSlideMetrics(s) : t;
                    i.index = a,
                    i.width = r,
                    i.left = n,
                    t = r,
                    n += r,
                    o.push(a)
                }
                ));
                var a = Math.max(this.$track.offsetWidth, S(this.$track.getBoundingClientRect().width))
                  , s = getComputedStyle(this.$track);
                a -= parseFloat(s.paddingLeft) + parseFloat(s.paddingRight),
                this.contentWidth = n,
                this.viewportWidth = a;
                var r = []
                  , l = this.option("slidesPerPage");
                if (Number.isInteger(l) && n > a)
                    for (var c = 0; c < this.slides.length; c += l)
                        r.push({
                            indexes: o.slice(c, c + l),
                            slides: this.slides.slice(c, c + l)
                        });
                else
                    for (var h = 0, d = 0, u = 0; u < this.slides.length; u += 1) {
                        var f = this.slides[u];
                        (!r.length || d + f.width > a) && (r.push({
                            indexes: [],
                            slides: []
                        }),
                        h = r.length - 1,
                        d = 0),
                        d += f.width,
                        r[h].indexes.push(u),
                        r[h].slides.push(f)
                    }
                var v = this.option("center")
                  , p = this.option("fill");
                r.forEach((function(t, i) {
                    t.index = i,
                    t.width = t.slides.reduce((function(t, e) {
                        return t + e.width
                    }
                    ), 0),
                    t.left = t.slides[0].left,
                    v && (t.left += .5 * (a - t.width) * -1),
                    p && !e.option("infiniteX", e.option("infinite")) && n > a && (t.left = Math.max(t.left, 0),
                    t.left = Math.min(t.left, n - a))
                }
                ));
                var g, y = [];
                r.forEach((function(t) {
                    var e = i({}, t);
                    g && e.left === g.left ? (g.width += e.width,
                    g.slides = [].concat(m(g.slides), m(e.slides)),
                    g.indexes = [].concat(m(g.indexes), m(e.indexes))) : (e.index = y.length,
                    g = e,
                    y.push(e))
                }
                )),
                this.pages = y;
                var b = this.page;
                if (null === b) {
                    var x = this.option("initialSlide");
                    b = null !== x ? this.findPageForSlide(x) : parseInt(this.option("initialPage", 0), 10) || 0,
                    y[b] || (b = y.length && b > y.length ? y[y.length - 1].index : 0),
                    this.page = b,
                    this.pageIndex = b
                }
                this.updatePanzoom(),
                this.trigger("refresh")
            }
        }, {
            key: "getSlideMetrics",
            value: function(t) {
                if (!t) {
                    var e, i, n = this.slides[0];
                    if ((t = document.createElement("div")).dataset.isTestEl = 1,
                    t.style.visibility = "hidden",
                    (e = t.classList).add.apply(e, m((this.option("prefix") + this.option("classNames.slide")).split(" "))),
                    n.customClass)
                        (i = t.classList).add.apply(i, m(n.customClass.split(" ")));
                    this.$track.prepend(t)
                }
                var o = Math.max(t.offsetWidth, S(t.getBoundingClientRect().width))
                  , a = t.currentStyle || window.getComputedStyle(t);
                return o = o + (parseFloat(a.marginLeft) || 0) + (parseFloat(a.marginRight) || 0),
                t.dataset.isTestEl && t.remove(),
                o
            }
        }, {
            key: "findPageForSlide",
            value: function(t) {
                t = parseInt(t, 10) || 0;
                var e = this.pages.find((function(e) {
                    return e.indexes.indexOf(t) > -1
                }
                ));
                return e ? e.index : null
            }
        }, {
            key: "slideNext",
            value: function() {
                this.slideTo(this.pageIndex + 1)
            }
        }, {
            key: "slidePrev",
            value: function() {
                this.slideTo(this.pageIndex - 1)
            }
        }, {
            key: "slideTo",
            value: function(t) {
                var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}
                  , i = e.x
                  , n = void 0 === i ? -1 * this.setPage(t, !0) : i
                  , o = e.y
                  , a = void 0 === o ? 0 : o
                  , s = e.friction
                  , r = void 0 === s ? this.option("friction") : s;
                this.Panzoom.content.x === n && !this.Panzoom.velocity.x && r || (this.Panzoom.panTo({
                    x: n,
                    y: a,
                    friction: r,
                    ignoreBounds: !0
                }),
                "ready" === this.state && "ready" === this.Panzoom.state && this.trigger("settle"))
            }
        }, {
            key: "initPanzoom",
            value: function() {
                var t = this;
                this.Panzoom && this.Panzoom.destroy();
                var e = k(!0, {}, {
                    content: this.$track,
                    wrapInner: !1,
                    resizeParent: !1,
                    zoom: !1,
                    click: !1,
                    lockAxis: "x",
                    x: this.pages.length ? -1 * this.pages[this.page].left : 0,
                    centerOnStart: !1,
                    textSelection: function() {
                        return t.option("textSelection", !1)
                    },
                    panOnlyZoomed: function() {
                        return this.content.width <= this.viewport.width
                    }
                }, this.option("Panzoom"));
                this.Panzoom = new M(this.$container,e),
                this.Panzoom.on({
                    "*": function(e) {
                        for (var i = arguments.length, n = new Array(i > 1 ? i - 1 : 0), o = 1; o < i; o++)
                            n[o - 1] = arguments[o];
                        return t.trigger.apply(t, ["Panzoom.".concat(e)].concat(n))
                    },
                    afterUpdate: function() {
                        t.updatePage()
                    },
                    beforeTransform: this.onBeforeTransform.bind(this),
                    touchEnd: this.onTouchEnd.bind(this),
                    endAnimation: function() {
                        t.trigger("settle")
                    }
                }),
                this.updateMetrics(),
                this.manageSlideVisiblity()
            }
        }, {
            key: "updatePanzoom",
            value: function() {
                this.Panzoom && (this.Panzoom.content = i(i({}, this.Panzoom.content), {}, {
                    fitWidth: this.contentWidth,
                    origWidth: this.contentWidth,
                    width: this.contentWidth
                }),
                this.pages.length > 1 && this.option("infiniteX", this.option("infinite")) ? this.Panzoom.boundX = null : this.pages.length && (this.Panzoom.boundX = {
                    from: -1 * this.pages[this.pages.length - 1].left,
                    to: -1 * this.pages[0].left
                }),
                this.option("infiniteY", this.option("infinite")) ? this.Panzoom.boundY = null : this.Panzoom.boundY = {
                    from: 0,
                    to: 0
                },
                this.Panzoom.handleCursor())
            }
        }, {
            key: "manageSlideVisiblity",
            value: function() {
                var t = this
                  , e = this.contentWidth
                  , i = this.viewportWidth
                  , n = this.Panzoom ? -1 * this.Panzoom.content.x : this.pages.length ? this.pages[this.page].left : 0
                  , o = this.option("preload")
                  , a = this.option("infiniteX", this.option("infinite"))
                  , s = parseFloat(getComputedStyle(this.$viewport, null).getPropertyValue("padding-left"))
                  , r = parseFloat(getComputedStyle(this.$viewport, null).getPropertyValue("padding-right"));
                this.slides.forEach((function(l) {
                    var c, h, d = 0;
                    c = n - s,
                    h = n + i + r,
                    c -= o * (i + s + r),
                    h += o * (i + s + r);
                    var u = l.left + l.width > c && l.left < h;
                    c = n + e - s,
                    h = n + e + i + r,
                    c -= o * (i + s + r);
                    var f = a && l.left + l.width > c && l.left < h;
                    c = n - e - s,
                    h = n - e + i + r,
                    c -= o * (i + s + r);
                    var v = a && l.left + l.width > c && l.left < h;
                    f || u || v ? (t.createSlideEl(l),
                    u && (d = 0),
                    f && (d = -1),
                    v && (d = 1),
                    l.left + l.width > n && l.left <= n + i + r && (d = 0)) : t.removeSlideEl(l),
                    l.hasDiff = d
                }
                ));
                var l = 0
                  , c = 0;
                this.slides.forEach((function(t, i) {
                    var n = 0;
                    t.$el ? (i !== l || t.hasDiff ? n = c + t.hasDiff * e : c = 0,
                    t.$el.style.left = Math.abs(n) > .1 ? "".concat(c + t.hasDiff * e, "px") : "",
                    l++) : c += t.width
                }
                )),
                this.markSelectedSlides()
            }
        }, {
            key: "createSlideEl",
            value: function(t) {
                var e;
                if (t) {
                    if (!t.$el) {
                        var i, n = document.createElement("div");
                        if (n.dataset.index = t.index,
                        (e = n.classList).add.apply(e, m((this.option("prefix") + this.option("classNames.slide")).split(" "))),
                        t.customClass)
                            (i = n.classList).add.apply(i, m(t.customClass.split(" ")));
                        t.html && (n.innerHTML = t.html);
                        var o = [];
                        this.slides.forEach((function(t, e) {
                            t.$el && o.push(e)
                        }
                        ));
                        var a = t.index
                          , s = null;
                        if (o.length) {
                            var r = o.reduce((function(t, e) {
                                return Math.abs(e - a) < Math.abs(t - a) ? e : t
                            }
                            ));
                            s = this.slides[r]
                        }
                        return this.$track.insertBefore(n, s && s.$el ? s.index < t.index ? s.$el.nextSibling : s.$el : null),
                        t.$el = n,
                        this.trigger("createSlide", t, a),
                        t
                    }
                    var l, c = t.$el.dataset.index;
                    c && parseInt(c, 10) === t.index || (t.$el.dataset.index = t.index,
                    t.$el.querySelectorAll("[data-lazy-srcset]").forEach((function(t) {
                        t.srcset = t.dataset.lazySrcset
                    }
                    )),
                    t.$el.querySelectorAll("[data-lazy-src]").forEach((function(t) {
                        var e = t.dataset.lazySrc;
                        t instanceof HTMLImageElement ? t.src = e : t.style.backgroundImage = "url('".concat(e, "')")
                    }
                    )),
                    (l = t.$el.dataset.lazySrc) && (t.$el.style.backgroundImage = "url('".concat(l, "')")),
                    t.state = "ready")
                }
            }
        }, {
            key: "removeSlideEl",
            value: function(t) {
                t.$el && !t.isDom && (this.trigger("removeSlide", t),
                t.$el.remove(),
                t.$el = null)
            }
        }, {
            key: "markSelectedSlides",
            value: function() {
                var t = this
                  , e = this.option("classNames.slideSelected")
                  , i = "aria-hidden";
                this.slides.forEach((function(n, o) {
                    var a = n.$el;
                    if (a) {
                        var s = t.pages[t.page];
                        s && s.indexes && s.indexes.indexOf(o) > -1 ? (e && !a.classList.contains(e) && (a.classList.add(e),
                        t.trigger("selectSlide", n)),
                        a.removeAttribute(i)) : (e && a.classList.contains(e) && (a.classList.remove(e),
                        t.trigger("unselectSlide", n)),
                        a.setAttribute(i, !0))
                    }
                }
                ))
            }
        }, {
            key: "updatePage",
            value: function() {
                this.updateMetrics(),
                this.slideTo(this.page, {
                    friction: 0
                })
            }
        }, {
            key: "onBeforeTransform",
            value: function() {
                this.option("infiniteX", this.option("infinite")) && this.manageInfiniteTrack(),
                this.manageSlideVisiblity()
            }
        }, {
            key: "manageInfiniteTrack",
            value: function() {
                var t = this.contentWidth
                  , e = this.viewportWidth;
                if (!(!this.option("infiniteX", this.option("infinite")) || this.pages.length < 2 || t < e)) {
                    var i = this.Panzoom
                      , n = !1;
                    return i.content.x < -1 * (t - e) && (i.content.x += t,
                    this.pageIndex = this.pageIndex - this.pages.length,
                    n = !0),
                    i.content.x > e && (i.content.x -= t,
                    this.pageIndex = this.pageIndex + this.pages.length,
                    n = !0),
                    n && "pointerdown" === i.state && i.resetDragPosition(),
                    n
                }
            }
        }, {
            key: "onTouchEnd",
            value: function(t, e) {
                var i = this.option("dragFree");
                if (!i && this.pages.length > 1 && t.dragOffset.time < 350 && Math.abs(t.dragOffset.y) < 1 && Math.abs(t.dragOffset.x) > 5)
                    this[t.dragOffset.x < 0 ? "slideNext" : "slidePrev"]();
                else if (i) {
                    var n = g(this.getPageFromPosition(-1 * t.transform.x), 2)[1];
                    this.setPage(n)
                } else
                    this.slideToClosest()
            }
        }, {
            key: "slideToClosest",
            value: function() {
                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
                  , e = this.getPageFromPosition(-1 * this.Panzoom.content.x)
                  , i = g(e, 2)
                  , n = i[1];
                this.slideTo(n, t)
            }
        }, {
            key: "getPageFromPosition",
            value: function(t) {
                var e = this.pages.length;
                this.option("center") && (t += .5 * this.viewportWidth);
                var i = Math.floor(t / this.contentWidth);
                t -= i * this.contentWidth;
                var n = this.slides.find((function(e) {
                    return e.left <= t && e.left + e.width > t
                }
                ));
                if (n) {
                    var o = this.findPageForSlide(n.index);
                    return [o, o + i * e]
                }
                return [0, 0]
            }
        }, {
            key: "setPage",
            value: function(t, e) {
                var i = 0
                  , n = parseInt(t, 10) || 0
                  , o = this.page
                  , a = this.pageIndex
                  , s = this.pages.length
                  , r = this.contentWidth
                  , l = this.viewportWidth;
                if (t = (n % s + s) % s,
                this.option("infiniteX", this.option("infinite")) && r > l) {
                    var c = Math.floor(n / s) || 0
                      , h = r;
                    if (i = this.pages[t].left + c * h,
                    !0 === e && s > 2) {
                        var d = -1 * this.Panzoom.content.x
                          , u = i - h
                          , f = i + h
                          , v = Math.abs(d - i)
                          , p = Math.abs(d - u)
                          , g = Math.abs(d - f);
                        g < v && g <= p ? (i = f,
                        n += s) : p < v && p < g && (i = u,
                        n -= s)
                    }
                } else
                    t = n = Math.max(0, Math.min(n, s - 1)),
                    i = this.pages.length ? this.pages[t].left : 0;
                return this.page = t,
                this.pageIndex = n,
                null !== o && t !== o && (this.prevPage = o,
                this.prevPageIndex = a,
                this.trigger("change", t, o)),
                i
            }
        }, {
            key: "destroy",
            value: function() {
                var t = this;
                this.state = "destroy",
                this.slides.forEach((function(e) {
                    t.removeSlideEl(e)
                }
                )),
                this.slides = [],
                this.Panzoom.destroy(),
                this.detachPlugins()
            }
        }]),
        n
    }(O);
    W.version = "4.0.26",
    W.Plugins = D;
    var H = !("undefined" == typeof window || !window.document || !window.document.createElement)
      , j = null
      , X = ["a[href]", "area[href]", 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])', "select:not([disabled]):not([aria-hidden])", "textarea:not([disabled]):not([aria-hidden])", "button:not([disabled]):not([aria-hidden])", "iframe", "object", "embed", "video", "audio", "[contenteditable]", '[tabindex]:not([tabindex^="-"]):not([disabled]):not([aria-hidden])']
      , q = function(t) {
        if (t && H) {
            null === j && document.createElement("div").focus({
                get preventScroll() {
                    return j = !0,
                    !1
                }
            });
            try {
                if (t.setActive)
                    t.setActive();
                else if (j)
                    t.focus({
                        preventScroll: !0
                    });
                else {
                    var e = window.pageXOffset || document.body.scrollTop
                      , i = window.pageYOffset || document.body.scrollLeft;
                    t.focus(),
                    document.body.scrollTo({
                        top: e,
                        left: i,
                        behavior: "auto"
                    })
                }
            } catch (t) {}
        }
    }
      , U = function() {
        function t(e) {
            o(this, t),
            this.fancybox = e,
            this.viewport = null,
            this.pendingUpdate = null;
            for (var i = 0, n = ["onReady", "onResize", "onTouchstart", "onTouchmove"]; i < n.length; i++) {
                var a = n[i];
                this[a] = this[a].bind(this)
            }
        }
        return s(t, [{
            key: "onReady",
            value: function() {
                var t = window.visualViewport;
                t && (this.viewport = t,
                this.startY = 0,
                t.addEventListener("resize", this.onResize),
                this.updateViewport()),
                window.addEventListener("touchstart", this.onTouchstart, {
                    passive: !1
                }),
                window.addEventListener("touchmove", this.onTouchmove, {
                    passive: !1
                }),
                window.addEventListener("wheel", this.onWheel, {
                    passive: !1
                })
            }
        }, {
            key: "onResize",
            value: function() {
                this.updateViewport()
            }
        }, {
            key: "updateViewport",
            value: function() {
                var t = this.fancybox
                  , e = this.viewport
                  , i = e.scale || 1
                  , n = t.$container;
                if (n) {
                    var o = ""
                      , a = ""
                      , s = "";
                    i - 1 > .1 && (o = "".concat(e.width * i, "px"),
                    a = "".concat(e.height * i, "px"),
                    s = "translate3d(".concat(e.offsetLeft, "px, ").concat(e.offsetTop, "px, 0) scale(").concat(1 / i, ")")),
                    n.style.width = o,
                    n.style.height = a,
                    n.style.transform = s
                }
            }
        }, {
            key: "onTouchstart",
            value: function(t) {
                this.startY = t.touches ? t.touches[0].screenY : t.screenY
            }
        }, {
            key: "onTouchmove",
            value: function(t) {
                var e = this.startY
                  , i = window.innerWidth / window.document.documentElement.clientWidth;
                if (t.cancelable && !(t.touches.length > 1 || 1 !== i)) {
                    var n = C(t.composedPath()[0]);
                    if (n) {
                        var o = window.getComputedStyle(n)
                          , a = parseInt(o.getPropertyValue("height"), 10)
                          , s = t.touches ? t.touches[0].screenY : t.screenY
                          , r = e <= s && 0 === n.scrollTop
                          , l = e >= s && n.scrollHeight - n.scrollTop === a;
                        (r || l) && t.preventDefault()
                    } else
                        t.preventDefault()
                }
            }
        }, {
            key: "onWheel",
            value: function(t) {
                C(t.composedPath()[0]) || t.preventDefault()
            }
        }, {
            key: "cleanup",
            value: function() {
                this.pendingUpdate && (cancelAnimationFrame(this.pendingUpdate),
                this.pendingUpdate = null);
                var t = this.viewport;
                t && (t.removeEventListener("resize", this.onResize),
                this.viewport = null),
                window.removeEventListener("touchstart", this.onTouchstart, !1),
                window.removeEventListener("touchmove", this.onTouchmove, !1),
                window.removeEventListener("wheel", this.onWheel, {
                    passive: !1
                })
            }
        }, {
            key: "attach",
            value: function() {
                this.fancybox.on("initLayout", this.onReady)
            }
        }, {
            key: "detach",
            value: function() {
                this.fancybox.off("initLayout", this.onReady),
                this.cleanup()
            }
        }]),
        t
    }()
      , Y = function() {
        function t(e) {
            o(this, t),
            this.fancybox = e,
            this.$container = null,
            this.state = "init";
            for (var i = 0, n = ["onPrepare", "onClosing", "onKeydown"]; i < n.length; i++) {
                var a = n[i];
                this[a] = this[a].bind(this)
            }
            this.events = {
                prepare: this.onPrepare,
                closing: this.onClosing,
                keydown: this.onKeydown
            }
        }
        return s(t, [{
            key: "onPrepare",
            value: function() {
                this.getSlides().length < this.fancybox.option("Thumbs.minSlideCount") ? this.state = "disabled" : !0 === this.fancybox.option("Thumbs.autoStart") && this.fancybox.Carousel.Panzoom.content.height >= this.fancybox.option("Thumbs.minScreenHeight") && this.build()
            }
        }, {
            key: "onClosing",
            value: function() {
                this.Carousel && this.Carousel.Panzoom.detachEvents()
            }
        }, {
            key: "onKeydown",
            value: function(t, e) {
                e === t.option("Thumbs.key") && this.toggle()
            }
        }, {
            key: "build",
            value: function() {
                var t = this;
                if (!this.$container) {
                    var e = document.createElement("div");
                    e.classList.add("fancybox__thumbs"),
                    this.fancybox.$carousel.parentNode.insertBefore(e, this.fancybox.$carousel.nextSibling),
                    this.Carousel = new W(e,k(!0, {
                        Dots: !1,
                        Navigation: !1,
                        Sync: {
                            friction: 0
                        },
                        infinite: !1,
                        center: !0,
                        fill: !0,
                        dragFree: !0,
                        slidesPerPage: 1,
                        preload: 1
                    }, this.fancybox.option("Thumbs.Carousel"), {
                        Sync: {
                            target: this.fancybox.Carousel
                        },
                        slides: this.getSlides()
                    })),
                    this.Carousel.Panzoom.on("wheel", (function(e, i) {
                        i.preventDefault(),
                        t.fancybox[i.deltaY < 0 ? "prev" : "next"]()
                    }
                    )),
                    this.$container = e,
                    this.state = "visible"
                }
            }
        }, {
            key: "getSlides",
            value: function() {
                var t, e = [], i = x(this.fancybox.items);
                try {
                    for (i.s(); !(t = i.n()).done; ) {
                        var n = t.value
                          , o = n.thumb;
                        o && e.push({
                            html: '<div class="fancybox__thumb" style="background-image:url(\''.concat(o, "')\"></div>"),
                            customClass: "has-thumb has-".concat(n.type || "image")
                        })
                    }
                } catch (t) {
                    i.e(t)
                } finally {
                    i.f()
                }
                return e
            }
        }, {
            key: "toggle",
            value: function() {
                "visible" === this.state ? this.hide() : "hidden" === this.state ? this.show() : this.build()
            }
        }, {
            key: "show",
            value: function() {
                "hidden" === this.state && (this.$container.style.display = "",
                this.Carousel.Panzoom.attachEvents(),
                this.state = "visible")
            }
        }, {
            key: "hide",
            value: function() {
                "visible" === this.state && (this.Carousel.Panzoom.detachEvents(),
                this.$container.style.display = "none",
                this.state = "hidden")
            }
        }, {
            key: "cleanup",
            value: function() {
                this.Carousel && (this.Carousel.destroy(),
                this.Carousel = null),
                this.$container && (this.$container.remove(),
                this.$container = null),
                this.state = "init"
            }
        }, {
            key: "attach",
            value: function() {
                this.fancybox.on(this.events)
            }
        }, {
            key: "detach",
            value: function() {
                this.fancybox.off(this.events),
                this.cleanup()
            }
        }]),
        t
    }();
    Y.defaults = {
        minSlideCount: 2,
        minScreenHeight: 500,
        autoStart: !0,
        key: "t",
        Carousel: {}
    };
    var V = function(t, e) {
        for (var i = new URL(t), n = new URLSearchParams(i.search), o = new URLSearchParams, a = 0, s = [].concat(m(n), m(Object.entries(e))); a < s.length; a++) {
            var r = g(s[a], 2)
              , l = r[0]
              , c = r[1];
            "t" === l ? o.set("start", parseInt(c)) : o.set(l, c)
        }
        o = o.toString();
        var h = t.match(/#t=((.*)?\d+s)/);
        return h && (o += "#t=".concat(h[1])),
        o
    }
      , Z = {
        video: {
            autoplay: !0,
            ratio: 16 / 9
        },
        youtube: {
            autohide: 1,
            fs: 1,
            rel: 0,
            hd: 1,
            wmode: "transparent",
            enablejsapi: 1,
            html5: 1
        },
        vimeo: {
            hd: 1,
            show_title: 1,
            show_byline: 1,
            show_portrait: 0,
            fullscreen: 1
        },
        html5video: {
            tpl: '<video class="fancybox__html5video" playsinline controls controlsList="nodownload" poster="{{poster}}">\n  <source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos.</video>',
            format: ""
        }
    }
      , G = function() {
        function t(e) {
            o(this, t),
            this.fancybox = e;
            for (var i = 0, n = ["onInit", "onReady", "onCreateSlide", "onRemoveSlide", "onSelectSlide", "onUnselectSlide", "onRefresh", "onMessage"]; i < n.length; i++) {
                var a = n[i];
                this[a] = this[a].bind(this)
            }
            this.events = {
                init: this.onInit,
                ready: this.onReady,
                "Carousel.createSlide": this.onCreateSlide,
                "Carousel.removeSlide": this.onRemoveSlide,
                "Carousel.selectSlide": this.onSelectSlide,
                "Carousel.unselectSlide": this.onUnselectSlide,
                "Carousel.refresh": this.onRefresh
            }
        }
        return s(t, [{
            key: "onInit",
            value: function() {
                var t, e = x(this.fancybox.items);
                try {
                    for (e.s(); !(t = e.n()).done; ) {
                        var i = t.value;
                        this.processType(i)
                    }
                } catch (t) {
                    e.e(t)
                } finally {
                    e.f()
                }
            }
        }, {
            key: "processType",
            value: function(t) {
                if (t.html)
                    return t.src = t.html,
                    t.type = "html",
                    void delete t.html;
                var e = t.src || ""
                  , i = t.type || this.fancybox.options.type
                  , n = null;
                if (!e || "string" == typeof e) {
                    if (n = e.match(/(?:youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(?:watch\?(?:.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(?:.*)|[\w-]{11}|\?listType=(?:.*)&list=(?:.*))(?:.*)/i)) {
                        var o = V(e, this.fancybox.option("Html.youtube"))
                          , a = encodeURIComponent(n[1]);
                        t.videoId = a,
                        t.src = "https://www.youtube-nocookie.com/embed/".concat(a, "?").concat(o),
                        t.thumb = t.thumb || "https://i.ytimg.com/vi/".concat(a, "/mqdefault.jpg"),
                        t.vendor = "youtube",
                        i = "video"
                    } else if (n = e.match(/^.+vimeo.com\/(?:\/)?([\d]+)(.*)?/)) {
                        var s = V(e, this.fancybox.option("Html.vimeo"))
                          , r = encodeURIComponent(n[1]);
                        t.videoId = r,
                        t.src = "https://player.vimeo.com/video/".concat(r, "?").concat(s),
                        t.vendor = "vimeo",
                        i = "video"
                    } else
                        (n = e.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:(?:(?:maps\/(?:place\/(?:.*)\/)?\@(.*),(\d+.?\d+?)z))|(?:\?ll=))(.*)?/i)) ? (t.src = "//maps.google.".concat(n[1], "/?ll=").concat((n[2] ? n[2] + "&z=" + Math.floor(n[3]) + (n[4] ? n[4].replace(/^\//, "&") : "") : n[4] + "").replace(/\?/, "&"), "&output=").concat(n[4] && n[4].indexOf("layer=c") > 0 ? "svembed" : "embed"),
                        i = "map") : (n = e.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:maps\/search\/)(.*)/i)) && (t.src = "//maps.google.".concat(n[1], "/maps?q=").concat(n[2].replace("query=", "q=").replace("api=1", ""), "&output=embed"),
                        i = "map");
                    i || ("#" === e.charAt(0) ? i = "inline" : (n = e.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i)) ? (i = "html5video",
                    t.format = t.format || "video/" + ("ogv" === n[1] ? "ogg" : n[1])) : e.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i) ? i = "image" : e.match(/\.(pdf)((\?|#).*)?$/i) && (i = "pdf")),
                    t.type = i || this.fancybox.option("defaultType", "image"),
                    "html5video" !== i && "video" !== i || (t.video = k({}, this.fancybox.option("Html.video"), t.video),
                    t._width && t._height ? t.ratio = parseFloat(t._width) / parseFloat(t._height) : t.ratio = t.ratio || t.video.ratio || Z.video.ratio)
                }
            }
        }, {
            key: "onReady",
            value: function() {
                var t = this;
                this.fancybox.Carousel.slides.forEach((function(e) {
                    e.$el && (t.setContent(e),
                    e.index === t.fancybox.getSlide().index && t.playVideo(e))
                }
                ))
            }
        }, {
            key: "onCreateSlide",
            value: function(t, e, i) {
                "ready" === this.fancybox.state && this.setContent(i)
            }
        }, {
            key: "loadInlineContent",
            value: function(t) {
                var e;
                if (t.src instanceof HTMLElement)
                    e = t.src;
                else if ("string" == typeof t.src) {
                    var i = t.src.split("#", 2)
                      , n = 2 === i.length && "" === i[0] ? i[1] : i[0];
                    e = document.getElementById(n)
                }
                if (e) {
                    if ("clone" === t.type || e.$placeHolder) {
                        var o = (e = e.cloneNode(!0)).getAttribute("id");
                        o = o ? "".concat(o, "--clone") : "clone-".concat(this.fancybox.id, "-").concat(t.index),
                        e.setAttribute("id", o)
                    } else {
                        var a = document.createElement("div");
                        a.classList.add("fancybox-placeholder"),
                        e.parentNode.insertBefore(a, e),
                        e.$placeHolder = a
                    }
                    this.fancybox.setContent(t, e)
                } else
                    this.fancybox.setError(t, "{{ELEMENT_NOT_FOUND}}")
            }
        }, {
            key: "loadAjaxContent",
            value: function(t) {
                var e = this.fancybox
                  , i = new XMLHttpRequest;
                e.showLoading(t),
                i.onreadystatechange = function() {
                    i.readyState === XMLHttpRequest.DONE && "ready" === e.state && (e.hideLoading(t),
                    200 === i.status ? e.setContent(t, i.responseText) : e.setError(t, 404 === i.status ? "{{AJAX_NOT_FOUND}}" : "{{AJAX_FORBIDDEN}}"))
                }
                ,
                i.open("GET", t.src),
                i.setRequestHeader("X-Requested-With", "XMLHttpRequest"),
                i.send(t.ajax || null),
                t.xhr = i
            }
        }, {
            key: "loadIframeContent",
            value: function(t) {
                var e = this
                  , i = this.fancybox
                  , n = document.createElement("iframe");
                if (n.className = "fancybox__iframe",
                n.setAttribute("id", "fancybox__iframe_".concat(i.id, "_").concat(t.index)),
                n.setAttribute("allow", "autoplay; fullscreen"),
                n.setAttribute("scrolling", "auto"),
                t.$iframe = n,
                "iframe" !== t.type || !1 === t.preload)
                    return n.setAttribute("src", t.src),
                    this.fancybox.setContent(t, n),
                    void this.resizeIframe(t);
                i.showLoading(t);
                var o = document.createElement("div");
                o.style.visibility = "hidden",
                this.fancybox.setContent(t, o),
                o.appendChild(n),
                n.onerror = function() {
                    i.setError(t, "{{IFRAME_ERROR}}")
                }
                ,
                n.onload = function() {
                    i.hideLoading(t);
                    var o = !1;
                    n.isReady || (n.isReady = !0,
                    o = !0),
                    n.src.length && (n.parentNode.style.visibility = "",
                    e.resizeIframe(t),
                    o && i.revealContent(t))
                }
                ,
                n.setAttribute("src", t.src)
            }
        }, {
            key: "setAspectRatio",
            value: function(t) {
                var e = t.$content
                  , i = t.ratio;
                if (e) {
                    var n = t._width
                      , o = t._height;
                    if (i || n && o) {
                        Object.assign(e.style, {
                            width: n && o ? "100%" : "",
                            height: n && o ? "100%" : "",
                            maxWidth: "",
                            maxHeight: ""
                        });
                        var a = e.offsetWidth
                          , s = e.offsetHeight;
                        if (o = o || s,
                        (n = n || a) > a || o > s) {
                            var r = Math.min(a / n, s / o);
                            n *= r,
                            o *= r
                        }
                        Math.abs(n / o - i) > .01 && (i < n / o ? n = o * i : o = n / i),
                        Object.assign(e.style, {
                            width: "".concat(n, "px"),
                            height: "".concat(o, "px")
                        })
                    }
                }
            }
        }, {
            key: "resizeIframe",
            value: function(t) {
                var e = t.$iframe;
                if (e) {
                    var i = t._width || 0
                      , n = t._height || 0;
                    i && n && (t.autoSize = !1);
                    var o = e.parentNode
                      , a = o && o.style;
                    if (!1 !== t.preload && !1 !== t.autoSize && a)
                        try {
                            var s = window.getComputedStyle(o)
                              , r = parseFloat(s.paddingLeft) + parseFloat(s.paddingRight)
                              , l = parseFloat(s.paddingTop) + parseFloat(s.paddingBottom)
                              , c = e.contentWindow.document
                              , h = c.getElementsByTagName("html")[0]
                              , d = c.body;
                            a.width = "",
                            d.style.overflow = "hidden",
                            i = i || h.scrollWidth + r,
                            a.width = "".concat(i, "px"),
                            d.style.overflow = "",
                            a.flex = "0 0 auto",
                            a.height = "".concat(d.scrollHeight, "px"),
                            n = h.scrollHeight + l
                        } catch (t) {}
                    if (i || n) {
                        var u = {
                            flex: "0 1 auto"
                        };
                        i && (u.width = "".concat(i, "px")),
                        n && (u.height = "".concat(n, "px")),
                        Object.assign(a, u)
                    }
                }
            }
        }, {
            key: "onRefresh",
            value: function(t, e) {
                var i = this;
                e.slides.forEach((function(t) {
                    t.$el && (t.$iframe && i.resizeIframe(t),
                    t.ratio && i.setAspectRatio(t))
                }
                ))
            }
        }, {
            key: "setContent",
            value: function(t) {
                if (t && !t.isDom) {
                    switch (t.type) {
                    case "html":
                        this.fancybox.setContent(t, t.src);
                        break;
                    case "html5video":
                        this.fancybox.setContent(t, this.fancybox.option("Html.html5video.tpl").replace(/\{\{src\}\}/gi, t.src).replace("{{format}}", t.format || t.html5video && t.html5video.format || "").replace("{{poster}}", t.poster || t.thumb || ""));
                        break;
                    case "inline":
                    case "clone":
                        this.loadInlineContent(t);
                        break;
                    case "ajax":
                        this.loadAjaxContent(t);
                        break;
                    case "pdf":
                    case "video":
                    case "map":
                        t.preload = !1;
                    case "iframe":
                        this.loadIframeContent(t)
                    }
                    t.ratio && this.setAspectRatio(t)
                }
            }
        }, {
            key: "onSelectSlide",
            value: function(t, e, i) {
                "ready" === t.state && this.playVideo(i)
            }
        }, {
            key: "playVideo",
            value: function(t) {
                if ("html5video" === t.type && t.video.autoplay)
                    try {
                        var e = t.$el.querySelector("video");
                        if (e) {
                            var i = e.play();
                            void 0 !== i && i.then((function() {}
                            )).catch((function(t) {
                                e.muted = !0,
                                e.play()
                            }
                            ))
                        }
                    } catch (t) {}
                if ("video" === t.type && t.$iframe && t.$iframe.contentWindow) {
                    !function e() {
                        if ("done" === t.state && t.$iframe && t.$iframe.contentWindow) {
                            var i;
                            if (t.$iframe.isReady)
                                return t.video && t.video.autoplay && (i = "youtube" == t.vendor ? {
                                    event: "command",
                                    func: "playVideo"
                                } : {
                                    method: "play",
                                    value: "true"
                                }),
                                void (i && t.$iframe.contentWindow.postMessage(JSON.stringify(i), "*"));
                            "youtube" === t.vendor && (i = {
                                event: "listening",
                                id: t.$iframe.getAttribute("id")
                            },
                            t.$iframe.contentWindow.postMessage(JSON.stringify(i), "*"))
                        }
                        t.poller = setTimeout(e, 250)
                    }()
                }
            }
        }, {
            key: "onUnselectSlide",
            value: function(t, e, i) {
                if ("html5video" !== i.type) {
                    var n = !1;
                    "vimeo" == i.vendor ? n = {
                        method: "pause",
                        value: "true"
                    } : "youtube" === i.vendor && (n = {
                        event: "command",
                        func: "pauseVideo"
                    }),
                    n && i.$iframe && i.$iframe.contentWindow && i.$iframe.contentWindow.postMessage(JSON.stringify(n), "*"),
                    clearTimeout(i.poller)
                } else
                    try {
                        i.$el.querySelector("video").pause()
                    } catch (t) {}
            }
        }, {
            key: "onRemoveSlide",
            value: function(t, e, i) {
                i.xhr && (i.xhr.abort(),
                i.xhr = null),
                i.$iframe && (i.$iframe.onload = i.$iframe.onerror = null,
                i.$iframe.src = "//about:blank",
                i.$iframe = null);
                var n = i.$content;
                "inline" === i.type && n && (n.classList.remove("fancybox__content"),
                "none" !== n.style.display && (n.style.display = "none")),
                i.$closeButton && (i.$closeButton.remove(),
                i.$closeButton = null);
                var o = n && n.$placeHolder;
                o && (o.parentNode.insertBefore(n, o),
                o.remove(),
                n.$placeHolder = null)
            }
        }, {
            key: "onMessage",
            value: function(t) {
                try {
                    var e = JSON.parse(t.data);
                    if ("https://player.vimeo.com" === t.origin) {
                        if ("ready" === e.event) {
                            var i, n = x(document.getElementsByClassName("fancybox__iframe"));
                            try {
                                for (n.s(); !(i = n.n()).done; ) {
                                    var o = i.value;
                                    o.contentWindow === t.source && (o.isReady = 1)
                                }
                            } catch (t) {
                                n.e(t)
                            } finally {
                                n.f()
                            }
                        }
                    } else
                        "https://www.youtube-nocookie.com" === t.origin && "onReady" === e.event && (document.getElementById(e.id).isReady = 1)
                } catch (t) {}
            }
        }, {
            key: "attach",
            value: function() {
                this.fancybox.on(this.events),
                window.addEventListener("message", this.onMessage, !1)
            }
        }, {
            key: "detach",
            value: function() {
                this.fancybox.off(this.events),
                window.removeEventListener("message", this.onMessage, !1)
            }
        }]),
        t
    }();
    G.defaults = Z;
    var K = function() {
        function t(e) {
            o(this, t),
            this.fancybox = e;
            for (var i = 0, n = ["onReady", "onClosing", "onDone", "onPageChange", "onCreateSlide", "onRemoveSlide", "onImageStatusChange"]; i < n.length; i++) {
                var a = n[i];
                this[a] = this[a].bind(this)
            }
            this.events = {
                ready: this.onReady,
                closing: this.onClosing,
                done: this.onDone,
                "Carousel.change": this.onPageChange,
                "Carousel.createSlide": this.onCreateSlide,
                "Carousel.removeSlide": this.onRemoveSlide
            }
        }
        return s(t, [{
            key: "onReady",
            value: function() {
                var t = this;
                this.fancybox.Carousel.slides.forEach((function(e) {
                    e.$el && t.setContent(e)
                }
                ))
            }
        }, {
            key: "onDone",
            value: function(t, e) {
                this.handleCursor(e)
            }
        }, {
            key: "onClosing",
            value: function(t) {
                clearTimeout(this.clickTimer),
                this.clickTimer = null,
                t.Carousel.slides.forEach((function(t) {
                    t.$image && (t.state = "destroy"),
                    t.Panzoom && t.Panzoom.detachEvents()
                }
                )),
                "closing" === this.fancybox.state && this.canZoom(t.getSlide()) && this.zoomOut()
            }
        }, {
            key: "onCreateSlide",
            value: function(t, e, i) {
                "ready" === this.fancybox.state && this.setContent(i)
            }
        }, {
            key: "onRemoveSlide",
            value: function(t, e, i) {
                i.$image && (i.$el.classList.remove(t.option("Image.canZoomInClass")),
                i.$image.remove(),
                i.$image = null),
                i.Panzoom && (i.Panzoom.destroy(),
                i.Panzoom = null),
                i.$el && i.$el.dataset && delete i.$el.dataset.imageFit
            }
        }, {
            key: "setContent",
            value: function(t) {
                var e = this;
                if (!(t.isDom || t.html || t.type && "image" !== t.type || t.$image)) {
                    t.type = "image",
                    t.state = "loading";
                    var i = document.createElement("div");
                    i.style.visibility = "hidden";
                    var n = document.createElement("img");
                    n.addEventListener("load", (function(i) {
                        i.stopImmediatePropagation(),
                        e.onImageStatusChange(t)
                    }
                    )),
                    n.addEventListener("error", (function() {
                        e.onImageStatusChange(t)
                    }
                    )),
                    n.src = t.src,
                    n.alt = "",
                    n.draggable = !1,
                    n.classList.add("fancybox__image"),
                    t.srcset && n.setAttribute("srcset", t.srcset),
                    t.sizes && n.setAttribute("sizes", t.sizes),
                    t.$image = n;
                    var o = this.fancybox.option("Image.wrap");
                    if (o) {
                        var a = document.createElement("div");
                        a.classList.add("string" == typeof o ? o : "fancybox__image-wrap"),
                        a.appendChild(n),
                        i.appendChild(a),
                        t.$wrap = a
                    } else
                        i.appendChild(n);
                    t.$el.dataset.imageFit = this.fancybox.option("Image.fit"),
                    this.fancybox.setContent(t, i),
                    n.complete || n.error ? this.onImageStatusChange(t) : this.fancybox.showLoading(t)
                }
            }
        }, {
            key: "onImageStatusChange",
            value: function(t) {
                var e = this
                  , i = t.$image;
                i && "loading" === t.state && (i.complete && i.naturalWidth && i.naturalHeight ? (this.fancybox.hideLoading(t),
                "contain" === this.fancybox.option("Image.fit") && this.initSlidePanzoom(t),
                t.$el.addEventListener("wheel", (function(i) {
                    return e.onWheel(t, i)
                }
                ), {
                    passive: !1
                }),
                t.$content.addEventListener("click", (function(i) {
                    return e.onClick(t, i)
                }
                ), {
                    passive: !1
                }),
                this.revealContent(t)) : this.fancybox.setError(t, "{{IMAGE_ERROR}}"))
            }
        }, {
            key: "initSlidePanzoom",
            value: function(t) {
                var e = this;
                t.Panzoom || (t.Panzoom = new M(t.$el,k(!0, this.fancybox.option("Image.Panzoom", {}), {
                    viewport: t.$wrap,
                    content: t.$image,
                    width: t._width,
                    height: t._height,
                    wrapInner: !1,
                    textSelection: !0,
                    touch: this.fancybox.option("Image.touch"),
                    panOnlyZoomed: !0,
                    click: !1,
                    wheel: !1
                })),
                t.Panzoom.on("startAnimation", (function() {
                    e.fancybox.trigger("Image.startAnimation", t)
                }
                )),
                t.Panzoom.on("endAnimation", (function() {
                    "zoomIn" === t.state && e.fancybox.done(t),
                    e.handleCursor(t),
                    e.fancybox.trigger("Image.endAnimation", t)
                }
                )),
                t.Panzoom.on("afterUpdate", (function() {
                    e.handleCursor(t),
                    e.fancybox.trigger("Image.afterUpdate", t)
                }
                )))
            }
        }, {
            key: "revealContent",
            value: function(t) {
                null === this.fancybox.Carousel.prevPage && t.index === this.fancybox.options.startIndex && this.canZoom(t) ? this.zoomIn() : this.fancybox.revealContent(t)
            }
        }, {
            key: "getZoomInfo",
            value: function(t) {
                var e = t.$thumb.getBoundingClientRect()
                  , i = e.width
                  , n = e.height
                  , o = t.$content.getBoundingClientRect()
                  , a = o.width
                  , s = o.height
                  , r = o.top - e.top
                  , l = o.left - e.left
                  , c = this.fancybox.option("Image.zoomOpacity");
                return "auto" === c && (c = Math.abs(i / n - a / s) > .1),
                {
                    top: r,
                    left: l,
                    scale: a && i ? i / a : 1,
                    opacity: c
                }
            }
        }, {
            key: "canZoom",
            value: function(t) {
                var e = this.fancybox
                  , i = e.$container;
                if (window.visualViewport && 1 !== window.visualViewport.scale)
                    return !1;
                if (t.Panzoom && !t.Panzoom.content.width)
                    return !1;
                if (!e.option("Image.zoom") || "contain" !== e.option("Image.fit"))
                    return !1;
                var n = t.$thumb;
                if (!n || "loading" === t.state)
                    return !1;
                i.classList.add("fancybox__no-click");
                var o, a = n.getBoundingClientRect();
                if (this.fancybox.option("Image.ignoreCoveredThumbnail")) {
                    var s = document.elementFromPoint(a.left + 1, a.top + 1) === n
                      , r = document.elementFromPoint(a.right - 1, a.bottom - 1) === n;
                    o = s && r
                } else
                    o = document.elementFromPoint(a.left + .5 * a.width, a.top + .5 * a.height) === n;
                return i.classList.remove("fancybox__no-click"),
                o
            }
        }, {
            key: "zoomIn",
            value: function() {
                var t = this.fancybox
                  , e = t.getSlide()
                  , i = e.Panzoom
                  , n = this.getZoomInfo(e)
                  , o = n.top
                  , a = n.left
                  , s = n.scale
                  , r = n.opacity;
                t.trigger("reveal", e),
                i.panTo({
                    x: -1 * a,
                    y: -1 * o,
                    scale: s,
                    friction: 0,
                    ignoreBounds: !0
                }),
                e.$content.style.visibility = "",
                e.state = "zoomIn",
                !0 === r && i.on("afterTransform", (function(t) {
                    "zoomIn" !== e.state && "zoomOut" !== e.state || (t.$content.style.opacity = Math.min(1, 1 - (1 - t.content.scale) / (1 - s)))
                }
                )),
                i.panTo({
                    x: 0,
                    y: 0,
                    scale: 1,
                    friction: this.fancybox.option("Image.zoomFriction")
                })
            }
        }, {
            key: "zoomOut",
            value: function() {
                var t = this
                  , e = this.fancybox
                  , i = e.getSlide()
                  , n = i.Panzoom;
                if (n) {
                    i.state = "zoomOut",
                    e.state = "customClosing",
                    i.$caption && (i.$caption.style.visibility = "hidden");
                    var o = this.fancybox.option("Image.zoomFriction")
                      , a = function(e) {
                        var a = t.getZoomInfo(i)
                          , s = a.top
                          , r = a.left
                          , l = a.scale
                          , c = a.opacity;
                        e || c || (o *= .82),
                        n.panTo({
                            x: -1 * r,
                            y: -1 * s,
                            scale: l,
                            friction: o,
                            ignoreBounds: !0
                        }),
                        o *= .98
                    };
                    window.addEventListener("scroll", a),
                    n.once("endAnimation", (function() {
                        window.removeEventListener("scroll", a),
                        e.destroy()
                    }
                    )),
                    a()
                }
            }
        }, {
            key: "handleCursor",
            value: function(t) {
                if ("image" === t.type && t.$el) {
                    var e = t.Panzoom
                      , i = this.fancybox.option("Image.click", !1, t)
                      , n = this.fancybox.option("Image.touch")
                      , o = t.$el.classList
                      , a = this.fancybox.option("Image.canZoomInClass")
                      , s = this.fancybox.option("Image.canZoomOutClass");
                    if (o.remove(s),
                    o.remove(a),
                    e && "toggleZoom" === i)
                        e && 1 === e.content.scale && e.option("maxScale") - e.content.scale > .01 ? o.add(a) : e.content.scale > 1 && !n && o.add(s);
                    else
                        "close" === i && o.add(s)
                }
            }
        }, {
            key: "onWheel",
            value: function(t, e) {
                if ("ready" === this.fancybox.state && !1 !== this.fancybox.trigger("Image.wheel", e))
                    switch (this.fancybox.option("Image.wheel")) {
                    case "zoom":
                        "done" === t.state && t.Panzoom && t.Panzoom.zoomWithWheel(e);
                        break;
                    case "close":
                        this.fancybox.close();
                        break;
                    case "slide":
                        this.fancybox[e.deltaY < 0 ? "prev" : "next"]()
                    }
            }
        }, {
            key: "onClick",
            value: function(t, e) {
                var i = this;
                if ("ready" === this.fancybox.state) {
                    var n = t.Panzoom;
                    if (!n || !n.dragPosition.midPoint && 0 === n.dragOffset.x && 0 === n.dragOffset.y && 1 === n.dragOffset.scale) {
                        if (this.fancybox.Carousel.Panzoom.lockAxis)
                            return !1;
                        var o = function(n) {
                            switch (n) {
                            case "toggleZoom":
                                e.stopPropagation(),
                                t.Panzoom && t.Panzoom.zoomWithClick(e);
                                break;
                            case "close":
                                i.fancybox.close();
                                break;
                            case "next":
                                e.stopPropagation(),
                                i.fancybox.next()
                            }
                        }
                          , a = this.fancybox.option("Image.click")
                          , s = this.fancybox.option("Image.doubleClick");
                        s ? this.clickTimer ? (clearTimeout(this.clickTimer),
                        this.clickTimer = null,
                        o(s)) : this.clickTimer = setTimeout((function() {
                            i.clickTimer = null,
                            o(a)
                        }
                        ), 300) : o(a)
                    }
                }
            }
        }, {
            key: "onPageChange",
            value: function(t, e) {
                var i = t.getSlide();
                e.slides.forEach((function(t) {
                    t.Panzoom && "done" === t.state && t.index !== i.index && t.Panzoom.panTo({
                        x: 0,
                        y: 0,
                        scale: 1,
                        friction: .8
                    })
                }
                ))
            }
        }, {
            key: "attach",
            value: function() {
                this.fancybox.on(this.events)
            }
        }, {
            key: "detach",
            value: function() {
                this.fancybox.off(this.events)
            }
        }]),
        t
    }();
    K.defaults = {
        canZoomInClass: "can-zoom_in",
        canZoomOutClass: "can-zoom_out",
        zoom: !0,
        zoomOpacity: "auto",
        zoomFriction: .82,
        ignoreCoveredThumbnail: !1,
        touch: !0,
        click: "toggleZoom",
        doubleClick: null,
        wheel: "zoom",
        fit: "contain",
        wrap: !1,
        Panzoom: {
            ratio: 1
        }
    };
    var J = function() {
        function t(e) {
            o(this, t),
            this.fancybox = e;
            for (var i = 0, n = ["onChange", "onClosing"]; i < n.length; i++) {
                var a = n[i];
                this[a] = this[a].bind(this)
            }
            this.events = {
                initCarousel: this.onChange,
                "Carousel.change": this.onChange,
                closing: this.onClosing
            },
            this.hasCreatedHistory = !1,
            this.origHash = "",
            this.timer = null
        }
        return s(t, [{
            key: "onChange",
            value: function(t) {
                var e = this
                  , i = t.Carousel;
                this.timer && clearTimeout(this.timer);
                var n = null === i.prevPage
                  , o = t.getSlide()
                  , a = new URL(document.URL).hash
                  , s = !1;
                if (o.slug)
                    s = "#" + o.slug;
                else {
                    var r = o.$trigger && o.$trigger.dataset
                      , l = t.option("slug") || r && r.fancybox;
                    l && l.length && "true" !== l && (s = "#" + l + (i.slides.length > 1 ? "-" + (o.index + 1) : ""))
                }
                n && (this.origHash = a !== s ? a : ""),
                s && a !== s && (this.timer = setTimeout((function() {
                    try {
                        window.history[n ? "pushState" : "replaceState"]({}, document.title, window.location.pathname + window.location.search + s),
                        n && (e.hasCreatedHistory = !0)
                    } catch (t) {}
                }
                ), 300))
            }
        }, {
            key: "onClosing",
            value: function() {
                if (this.timer && clearTimeout(this.timer),
                !0 !== this.hasSilentClose)
                    try {
                        return void window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (this.origHash || ""))
                    } catch (t) {}
            }
        }, {
            key: "attach",
            value: function(t) {
                t.on(this.events)
            }
        }, {
            key: "detach",
            value: function(t) {
                t.off(this.events)
            }
        }], [{
            key: "startFromUrl",
            value: function() {
                var e = t.Fancybox;
                if (e && !e.getInstance() && !1 !== e.defaults.Hash) {
                    var i = t.getParsedURL()
                      , n = i.hash
                      , o = i.slug
                      , a = i.index;
                    if (o) {
                        var s = document.querySelector('[data-slug="'.concat(n, '"]'));
                        if (s && s.dispatchEvent(new CustomEvent("click",{
                            bubbles: !0,
                            cancelable: !0
                        })),
                        !e.getInstance()) {
                            var r = document.querySelectorAll('[data-fancybox="'.concat(o, '"]'));
                            r.length && (null === a && 1 === r.length ? s = r[0] : a && (s = r[a - 1]),
                            s && s.dispatchEvent(new CustomEvent("click",{
                                bubbles: !0,
                                cancelable: !0
                            })))
                        }
                    }
                }
            }
        }, {
            key: "onHashChange",
            value: function() {
                var e = t.getParsedURL()
                  , i = e.slug
                  , n = e.index
                  , o = t.Fancybox
                  , a = o && o.getInstance();
                if (a && a.plugins.Hash) {
                    if (i) {
                        var s = a.Carousel;
                        if (i === a.option("slug"))
                            return s.slideTo(n - 1);
                        var r, l = x(s.slides);
                        try {
                            for (l.s(); !(r = l.n()).done; ) {
                                var c = r.value;
                                if (c.slug && c.slug === i)
                                    return s.slideTo(c.index)
                            }
                        } catch (t) {
                            l.e(t)
                        } finally {
                            l.f()
                        }
                        var h = a.getSlide()
                          , d = h.$trigger && h.$trigger.dataset;
                        if (d && d.fancybox === i)
                            return s.slideTo(n - 1)
                    }
                    a.plugins.Hash.hasSilentClose = !0,
                    a.close()
                }
                t.startFromUrl()
            }
        }, {
            key: "create",
            value: function(e) {
                function i() {
                    window.addEventListener("hashchange", t.onHashChange, !1),
                    t.startFromUrl()
                }
                t.Fancybox = e,
                H && window.requestAnimationFrame((function() {
                    /complete|interactive|loaded/.test(document.readyState) ? i() : document.addEventListener("DOMContentLoaded", i)
                }
                ))
            }
        }, {
            key: "destroy",
            value: function() {
                window.removeEventListener("hashchange", t.onHashChange, !1)
            }
        }, {
            key: "getParsedURL",
            value: function() {
                var t = window.location.hash.substr(1)
                  , e = t.split("-")
                  , i = e.length > 1 && /^\+?\d+$/.test(e[e.length - 1]) && parseInt(e.pop(-1), 10) || null;
                return {
                    hash: t,
                    slug: e.join("-"),
                    index: i
                }
            }
        }]),
        t
    }()
      , Q = {
        pageXOffset: 0,
        pageYOffset: 0,
        element: function() {
            return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement
        },
        activate: function(t) {
            Q.pageXOffset = window.pageXOffset,
            Q.pageYOffset = window.pageYOffset,
            t.requestFullscreen ? t.requestFullscreen() : t.mozRequestFullScreen ? t.mozRequestFullScreen() : t.webkitRequestFullscreen ? t.webkitRequestFullscreen() : t.msRequestFullscreen && t.msRequestFullscreen()
        },
        deactivate: function() {
            document.exitFullscreen ? document.exitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen && document.webkitExitFullscreen()
        }
    }
      , tt = function() {
        function t(e) {
            o(this, t),
            this.fancybox = e,
            this.active = !1,
            this.handleVisibilityChange = this.handleVisibilityChange.bind(this)
        }
        return s(t, [{
            key: "isActive",
            value: function() {
                return this.active
            }
        }, {
            key: "setTimer",
            value: function() {
                var t = this;
                if (this.active && !this.timer) {
                    var e = this.fancybox.option("slideshow.delay", 3e3);
                    this.timer = setTimeout((function() {
                        t.timer = null,
                        t.fancybox.option("infinite") || t.fancybox.getSlide().index !== t.fancybox.Carousel.slides.length - 1 ? t.fancybox.next() : t.fancybox.jumpTo(0, {
                            friction: 0
                        })
                    }
                    ), e);
                    var i = this.$progress;
                    i || ((i = document.createElement("div")).classList.add("fancybox__progress"),
                    this.fancybox.$carousel.parentNode.insertBefore(i, this.fancybox.$carousel),
                    this.$progress = i,
                    i.offsetHeight),
                    i.style.transitionDuration = "".concat(e, "ms"),
                    i.style.transform = "scaleX(1)"
                }
            }
        }, {
            key: "clearTimer",
            value: function() {
                clearTimeout(this.timer),
                this.timer = null,
                this.$progress && (this.$progress.style.transitionDuration = "",
                this.$progress.style.transform = "",
                this.$progress.offsetHeight)
            }
        }, {
            key: "activate",
            value: function() {
                this.active || (this.active = !0,
                this.fancybox.$container.classList.add("has-slideshow"),
                "done" === this.fancybox.getSlide().state && this.setTimer(),
                document.addEventListener("visibilitychange", this.handleVisibilityChange, !1))
            }
        }, {
            key: "handleVisibilityChange",
            value: function() {
                this.deactivate()
            }
        }, {
            key: "deactivate",
            value: function() {
                this.active = !1,
                this.clearTimer(),
                this.fancybox.$container.classList.remove("has-slideshow"),
                document.removeEventListener("visibilitychange", this.handleVisibilityChange, !1)
            }
        }, {
            key: "toggle",
            value: function() {
                this.active ? this.deactivate() : this.fancybox.Carousel.slides.length > 1 && this.activate()
            }
        }]),
        t
    }()
      , et = {
        display: ["counter", "zoom", "slideshow", "fullscreen", "thumbs", "close"],
        autoEnable: !0,
        items: {
            counter: {
                position: "left",
                type: "div",
                class: "fancybox__counter",
                html: '<span data-fancybox-index=""></span>&nbsp;/&nbsp;<span data-fancybox-count=""></span>',
                attr: {
                    tabindex: -1
                }
            },
            prev: {
                type: "button",
                class: "fancybox__button--prev",
                label: "PREV",
                html: '<svg viewBox="0 0 24 24"><path d="M15 4l-8 8 8 8"/></svg>',
                attr: {
                    "data-fancybox-prev": ""
                }
            },
            next: {
                type: "button",
                class: "fancybox__button--next",
                label: "NEXT",
                html: '<svg viewBox="0 0 24 24"><path d="M8 4l8 8-8 8"/></svg>',
                attr: {
                    "data-fancybox-next": ""
                }
            },
            fullscreen: {
                type: "button",
                class: "fancybox__button--fullscreen",
                label: "TOGGLE_FULLSCREEN",
                html: '<svg viewBox="0 0 24 24">\n                <g><path d="M3 8 V3h5"></path><path d="M21 8V3h-5"></path><path d="M8 21H3v-5"></path><path d="M16 21h5v-5"></path></g>\n                <g><path d="M7 2v5H2M17 2v5h5M2 17h5v5M22 17h-5v5"/></g>\n            </svg>',
                click: function(t) {
                    t.preventDefault(),
                    Q.element() ? Q.deactivate() : Q.activate(this.fancybox.$container)
                }
            },
            slideshow: {
                type: "button",
                class: "fancybox__button--slideshow",
                label: "TOGGLE_SLIDESHOW",
                html: '<svg viewBox="0 0 24 24">\n                <g><path d="M6 4v16"/><path d="M20 12L6 20"/><path d="M20 12L6 4"/></g>\n                <g><path d="M7 4v15M17 4v15"/></g>\n            </svg>',
                click: function(t) {
                    t.preventDefault(),
                    this.Slideshow.toggle()
                }
            },
            zoom: {
                type: "button",
                class: "fancybox__button--zoom",
                label: "TOGGLE_ZOOM",
                html: '<svg viewBox="0 0 24 24"><circle cx="10" cy="10" r="7"></circle><path d="M16 16 L21 21"></svg>',
                click: function(t) {
                    t.preventDefault();
                    var e = this.fancybox.getSlide().Panzoom;
                    e && e.toggleZoom()
                }
            },
            download: {
                type: "link",
                label: "DOWNLOAD",
                class: "fancybox__button--download",
                html: '<svg viewBox="0 0 24 24"><path d="M12 15V3m0 12l-4-4m4 4l4-4M2 17l.62 2.48A2 2 0 004.56 21h14.88a2 2 0 001.94-1.51L22 17"/></svg>',
                click: function(t) {
                    t.stopPropagation()
                }
            },
            thumbs: {
                type: "button",
                label: "TOGGLE_THUMBS",
                class: "fancybox__button--thumbs",
                html: '<svg viewBox="0 0 24 24"><circle cx="4" cy="4" r="1" /><circle cx="12" cy="4" r="1" transform="rotate(90 12 4)"/><circle cx="20" cy="4" r="1" transform="rotate(90 20 4)"/><circle cx="4" cy="12" r="1" transform="rotate(90 4 12)"/><circle cx="12" cy="12" r="1" transform="rotate(90 12 12)"/><circle cx="20" cy="12" r="1" transform="rotate(90 20 12)"/><circle cx="4" cy="20" r="1" transform="rotate(90 4 20)"/><circle cx="12" cy="20" r="1" transform="rotate(90 12 20)"/><circle cx="20" cy="20" r="1" transform="rotate(90 20 20)"/></svg>',
                click: function(t) {
                    t.stopPropagation();
                    var e = this.fancybox.plugins.Thumbs;
                    e && e.toggle()
                }
            },
            close: {
                type: "button",
                label: "CLOSE",
                class: "fancybox__button--close",
                html: '<svg viewBox="0 0 24 24"><path d="M20 20L4 4m16 0L4 20"></path></svg>',
                attr: {
                    "data-fancybox-close": "",
                    tabindex: 0
                }
            }
        }
    }
      , it = function() {
        function t(e) {
            var i = this;
            o(this, t),
            this.fancybox = e,
            this.$container = null,
            this.state = "init";
            for (var n = 0, a = ["onInit", "onPrepare", "onDone", "onKeydown", "onClosing", "onChange", "onSettle", "onRefresh"]; n < a.length; n++) {
                var s = a[n];
                this[s] = this[s].bind(this)
            }
            this.events = {
                init: this.onInit,
                prepare: this.onPrepare,
                done: this.onDone,
                keydown: this.onKeydown,
                closing: this.onClosing,
                "Carousel.change": this.onChange,
                "Carousel.settle": this.onSettle,
                "Carousel.Panzoom.touchStart": function() {
                    return i.onRefresh()
                },
                "Image.startAnimation": function(t, e) {
                    return i.onRefresh(e)
                },
                "Image.afterUpdate": function(t, e) {
                    return i.onRefresh(e)
                }
            }
        }
        return s(t, [{
            key: "onInit",
            value: function() {
                if (this.fancybox.option("Toolbar.autoEnable")) {
                    var t, e = !1, i = x(this.fancybox.items);
                    try {
                        for (i.s(); !(t = i.n()).done; ) {
                            if ("image" === t.value.type) {
                                e = !0;
                                break
                            }
                        }
                    } catch (t) {
                        i.e(t)
                    } finally {
                        i.f()
                    }
                    if (!e)
                        return void (this.state = "disabled")
                }
                var n, o = x(this.fancybox.option("Toolbar.display"));
                try {
                    for (o.s(); !(n = o.n()).done; ) {
                        var a = n.value;
                        if ("close" === (w(a) ? a.id : a)) {
                            this.fancybox.options.closeButton = !1;
                            break
                        }
                    }
                } catch (t) {
                    o.e(t)
                } finally {
                    o.f()
                }
            }
        }, {
            key: "onPrepare",
            value: function() {
                var t = this.fancybox;
                if ("init" === this.state && (this.build(),
                this.update(),
                this.Slideshow = new tt(t),
                !t.Carousel.prevPage && (t.option("slideshow.autoStart") && this.Slideshow.activate(),
                t.option("fullscreen.autoStart") && !Q.element())))
                    try {
                        Q.activate(t.$container)
                    } catch (t) {}
            }
        }, {
            key: "onFsChange",
            value: function() {
                window.scrollTo(Q.pageXOffset, Q.pageYOffset)
            }
        }, {
            key: "onSettle",
            value: function() {
                var t = this.fancybox
                  , e = this.Slideshow;
                e && e.isActive() && (t.getSlide().index !== t.Carousel.slides.length - 1 || t.option("infinite") ? "done" === t.getSlide().state && e.setTimer() : e.deactivate())
            }
        }, {
            key: "onChange",
            value: function() {
                this.update(),
                this.Slideshow && this.Slideshow.isActive() && this.Slideshow.clearTimer()
            }
        }, {
            key: "onDone",
            value: function(t, e) {
                var i = this.Slideshow;
                e.index === t.getSlide().index && (this.update(),
                i && i.isActive() && (t.option("infinite") || e.index !== t.Carousel.slides.length - 1 ? i.setTimer() : i.deactivate()))
            }
        }, {
            key: "onRefresh",
            value: function(t) {
                t && t.index !== this.fancybox.getSlide().index || (this.update(),
                !this.Slideshow || !this.Slideshow.isActive() || t && "done" !== t.state || this.Slideshow.deactivate())
            }
        }, {
            key: "onKeydown",
            value: function(t, e, i) {
                " " === e && this.Slideshow && (this.Slideshow.toggle(),
                i.preventDefault())
            }
        }, {
            key: "onClosing",
            value: function() {
                this.Slideshow && this.Slideshow.deactivate(),
                document.removeEventListener("fullscreenchange", this.onFsChange)
            }
        }, {
            key: "createElement",
            value: function(t) {
                var e, i;
                ("div" === t.type ? e = document.createElement("div") : (e = document.createElement("link" === t.type ? "a" : "button")).classList.add("carousel__button"),
                e.innerHTML = t.html,
                e.setAttribute("tabindex", t.tabindex || 0),
                t.class) && (i = e.classList).add.apply(i, m(t.class.split(" ")));
                for (var n in t.attr)
                    e.setAttribute(n, t.attr[n]);
                t.label && e.setAttribute("title", this.fancybox.localize("{{".concat(t.label, "}}"))),
                t.click && e.addEventListener("click", t.click.bind(this)),
                "prev" === t.id && e.setAttribute("data-fancybox-prev", ""),
                "next" === t.id && e.setAttribute("data-fancybox-next", "");
                var o = e.querySelector("svg");
                return o && (o.setAttribute("role", "img"),
                o.setAttribute("tabindex", "-1"),
                o.setAttribute("xmlns", "http://www.w3.org/2000/svg")),
                e
            }
        }, {
            key: "build",
            value: function() {
                var t = this;
                this.cleanup();
                var e, i = this.fancybox.option("Toolbar.items"), n = [{
                    position: "left",
                    items: []
                }, {
                    position: "center",
                    items: []
                }, {
                    position: "right",
                    items: []
                }], o = this.fancybox.plugins.Thumbs, a = x(this.fancybox.option("Toolbar.display"));
                try {
                    var s = function() {
                        var a = e.value
                          , s = void 0
                          , r = void 0;
                        if (w(a) ? (s = a.id,
                        r = k({}, i[s], a)) : r = i[s = a],
                        ["counter", "next", "prev", "slideshow"].includes(s) && t.fancybox.items.length < 2)
                            return "continue";
                        if ("fullscreen" === s) {
                            if (!document.fullscreenEnabled || window.fullScreen)
                                return "continue";
                            document.addEventListener("fullscreenchange", t.onFsChange)
                        }
                        if ("thumbs" === s && (!o || "disabled" === o.state))
                            return "continue";
                        if (!r)
                            return "continue";
                        var l = r.position || "right"
                          , c = n.find((function(t) {
                            return t.position === l
                        }
                        ));
                        c && c.items.push(r)
                    };
                    for (a.s(); !(e = a.n()).done; )
                        s()
                } catch (t) {
                    a.e(t)
                } finally {
                    a.f()
                }
                var r = document.createElement("div");
                r.classList.add("fancybox__toolbar");
                for (var l = 0, c = n; l < c.length; l++) {
                    var h = c[l];
                    if (h.items.length) {
                        var d = document.createElement("div");
                        d.classList.add("fancybox__toolbar__items"),
                        d.classList.add("fancybox__toolbar__items--".concat(h.position));
                        var u, f = x(h.items);
                        try {
                            for (f.s(); !(u = f.n()).done; ) {
                                var v = u.value;
                                d.appendChild(this.createElement(v))
                            }
                        } catch (t) {
                            f.e(t)
                        } finally {
                            f.f()
                        }
                        r.appendChild(d)
                    }
                }
                this.fancybox.$carousel.parentNode.insertBefore(r, this.fancybox.$carousel),
                this.$container = r
            }
        }, {
            key: "update",
            value: function() {
                var t, e = this.fancybox.getSlide(), i = e.index, n = this.fancybox.items.length, o = e.downloadSrc || ("image" !== e.type || e.error ? null : e.src), a = x(this.fancybox.$container.querySelectorAll("a.fancybox__button--download"));
                try {
                    for (a.s(); !(t = a.n()).done; ) {
                        var s = t.value;
                        o ? (s.removeAttribute("disabled"),
                        s.removeAttribute("tabindex"),
                        s.setAttribute("href", o),
                        s.setAttribute("download", o),
                        s.setAttribute("target", "_blank")) : (s.setAttribute("disabled", ""),
                        s.setAttribute("tabindex", -1),
                        s.removeAttribute("href"),
                        s.removeAttribute("download"))
                    }
                } catch (t) {
                    a.e(t)
                } finally {
                    a.f()
                }
                var r, l = e.Panzoom, c = l && l.option("maxScale") > l.option("baseScale"), h = x(this.fancybox.$container.querySelectorAll(".fancybox__button--zoom"));
                try {
                    for (h.s(); !(r = h.n()).done; ) {
                        var d = r.value;
                        c ? d.removeAttribute("disabled") : d.setAttribute("disabled", "")
                    }
                } catch (t) {
                    h.e(t)
                } finally {
                    h.f()
                }
                var u, f = x(this.fancybox.$container.querySelectorAll("[data-fancybox-index]"));
                try {
                    for (f.s(); !(u = f.n()).done; ) {
                        u.value.innerHTML = e.index + 1
                    }
                } catch (t) {
                    f.e(t)
                } finally {
                    f.f()
                }
                var v, p = x(this.fancybox.$container.querySelectorAll("[data-fancybox-count]"));
                try {
                    for (p.s(); !(v = p.n()).done; ) {
                        v.value.innerHTML = n
                    }
                } catch (t) {
                    p.e(t)
                } finally {
                    p.f()
                }
                if (!this.fancybox.option("infinite")) {
                    var g, m = x(this.fancybox.$container.querySelectorAll("[data-fancybox-prev]"));
                    try {
                        for (m.s(); !(g = m.n()).done; ) {
                            var y = g.value;
                            0 === i ? y.setAttribute("disabled", "") : y.removeAttribute("disabled")
                        }
                    } catch (t) {
                        m.e(t)
                    } finally {
                        m.f()
                    }
                    var b, w = x(this.fancybox.$container.querySelectorAll("[data-fancybox-next]"));
                    try {
                        for (w.s(); !(b = w.n()).done; ) {
                            var k = b.value;
                            i === n - 1 ? k.setAttribute("disabled", "") : k.removeAttribute("disabled")
                        }
                    } catch (t) {
                        w.e(t)
                    } finally {
                        w.f()
                    }
                }
            }
        }, {
            key: "cleanup",
            value: function() {
                this.Slideshow && this.Slideshow.isActive() && this.Slideshow.clearTimer(),
                this.$container && this.$container.remove(),
                this.$container = null
            }
        }, {
            key: "attach",
            value: function() {
                this.fancybox.on(this.events)
            }
        }, {
            key: "detach",
            value: function() {
                this.fancybox.off(this.events),
                this.cleanup()
            }
        }]),
        t
    }();
    it.defaults = et;
    var nt = {
        ScrollLock: U,
        Thumbs: Y,
        Html: G,
        Toolbar: it,
        Image: K,
        Hash: J
    }
      , ot = {
        startIndex: 0,
        preload: 1,
        infinite: !0,
        showClass: "fancybox-zoomInUp",
        hideClass: "fancybox-fadeOut",
        animated: !0,
        hideScrollbar: !0,
        parentEl: null,
        mainClass: null,
        autoFocus: !0,
        trapFocus: !0,
        placeFocusBack: !0,
        click: "close",
        closeButton: "inside",
        dragToClose: !0,
        keyboard: {
            Escape: "close",
            Delete: "close",
            Backspace: "close",
            PageUp: "next",
            PageDown: "prev",
            ArrowUp: "next",
            ArrowDown: "prev",
            ArrowRight: "next",
            ArrowLeft: "prev"
        },
        template: {
            closeButton: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M20 20L4 4m16 0L4 20"/></svg>',
            spinner: '<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="25 25 50 50" tabindex="-1"><circle cx="50" cy="50" r="20"/></svg>',
            main: null
        },
        l10n: {
            CLOSE: "Close",
            NEXT: "Next",
            PREV: "Previous",
            MODAL: "You can close this modal content with the ESC key",
            ERROR: "Something Went Wrong, Please Try Again Later",
            IMAGE_ERROR: "Image Not Found",
            ELEMENT_NOT_FOUND: "HTML Element Not Found",
            AJAX_NOT_FOUND: "Error Loading AJAX : Not Found",
            AJAX_FORBIDDEN: "Error Loading AJAX : Forbidden",
            IFRAME_ERROR: "Error Loading Page",
            TOGGLE_ZOOM: "Toggle zoom level",
            TOGGLE_THUMBS: "Toggle thumbnails",
            TOGGLE_SLIDESHOW: "Toggle slideshow",
            TOGGLE_FULLSCREEN: "Toggle full-screen mode",
            DOWNLOAD: "Download"
        }
    }
      , at = new Map
      , st = 0
      , rt = function(t) {
        l(i, t);
        var e = f(i);
        function i(t) {
            var n, a = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
            return o(this, i),
            t = t.map((function(t) {
                return t.width && (t._width = t.width),
                t.height && (t._height = t.height),
                t
            }
            )),
            (n = e.call(this, k(!0, {}, ot, a))).bindHandlers(),
            n.state = "init",
            n.setItems(t),
            n.attachPlugins(i.Plugins),
            n.trigger("init"),
            !0 === n.option("hideScrollbar") && n.hideScrollbar(),
            n.initLayout(),
            n.initCarousel(),
            n.attachEvents(),
            at.set(n.id, d(n)),
            n.trigger("prepare"),
            n.state = "ready",
            n.trigger("ready"),
            n.$container.setAttribute("aria-hidden", "false"),
            n.option("trapFocus") && n.focus(),
            n
        }
        return s(i, [{
            key: "option",
            value: function(t) {
                for (var e, n = this.getSlide(), o = n ? n[t] : void 0, a = arguments.length, s = new Array(a > 1 ? a - 1 : 0), r = 1; r < a; r++)
                    s[r - 1] = arguments[r];
                if (void 0 !== o) {
                    var l;
                    if ("function" == typeof o)
                        o = (l = o).call.apply(l, [this, this].concat(s));
                    return o
                }
                return (e = p(c(i.prototype), "option", this)).call.apply(e, [this, t].concat(s))
            }
        }, {
            key: "bindHandlers",
            value: function() {
                for (var t = 0, e = ["onMousedown", "onKeydown", "onClick", "onFocus", "onCreateSlide", "onSettle", "onTouchMove", "onTouchEnd", "onTransform"]; t < e.length; t++) {
                    var i = e[t];
                    this[i] = this[i].bind(this)
                }
            }
        }, {
            key: "attachEvents",
            value: function() {
                document.addEventListener("mousedown", this.onMousedown),
                document.addEventListener("keydown", this.onKeydown, !0),
                this.option("trapFocus") && document.addEventListener("focus", this.onFocus, !0),
                this.$container.addEventListener("click", this.onClick)
            }
        }, {
            key: "detachEvents",
            value: function() {
                document.removeEventListener("mousedown", this.onMousedown),
                document.removeEventListener("keydown", this.onKeydown, !0),
                document.removeEventListener("focus", this.onFocus, !0),
                this.$container.removeEventListener("click", this.onClick)
            }
        }, {
            key: "initLayout",
            value: function() {
                var t = this;
                this.$root = this.option("parentEl") || document.body;
                var e = this.option("template.main");
                e && (this.$root.insertAdjacentHTML("beforeend", this.localize(e)),
                this.$container = this.$root.querySelector(".fancybox__container")),
                this.$container || (this.$container = document.createElement("div"),
                this.$root.appendChild(this.$container)),
                this.$container.onscroll = function() {
                    return t.$container.scrollLeft = 0,
                    !1
                }
                ,
                Object.entries({
                    class: "fancybox__container",
                    role: "dialog",
                    tabIndex: "-1",
                    "aria-modal": "true",
                    "aria-hidden": "true",
                    "aria-label": this.localize("{{MODAL}}")
                }).forEach((function(e) {
                    var i;
                    return (i = t.$container).setAttribute.apply(i, m(e))
                }
                )),
                this.option("animated") && this.$container.classList.add("is-animated"),
                this.$backdrop = this.$container.querySelector(".fancybox__backdrop"),
                this.$backdrop || (this.$backdrop = document.createElement("div"),
                this.$backdrop.classList.add("fancybox__backdrop"),
                this.$container.appendChild(this.$backdrop)),
                this.$carousel = this.$container.querySelector(".fancybox__carousel"),
                this.$carousel || (this.$carousel = document.createElement("div"),
                this.$carousel.classList.add("fancybox__carousel"),
                this.$container.appendChild(this.$carousel)),
                this.$container.Fancybox = this,
                this.id = this.$container.getAttribute("id"),
                this.id || (this.id = this.options.id || ++st,
                this.$container.setAttribute("id", "fancybox-" + this.id));
                var i, n = this.option("mainClass");
                n && (i = this.$container.classList).add.apply(i, m(n.split(" ")));
                return document.documentElement.classList.add("with-fancybox"),
                this.trigger("initLayout"),
                this
            }
        }, {
            key: "setItems",
            value: function(t) {
                var e, i = [], n = x(t);
                try {
                    for (n.s(); !(e = n.n()).done; ) {
                        var o = e.value
                          , a = o.$trigger;
                        if (a) {
                            var s = a.dataset || {};
                            o.src = s.src || a.getAttribute("href") || o.src,
                            o.type = s.type || o.type,
                            !o.src && a instanceof HTMLImageElement && (o.src = a.currentSrc || o.$trigger.src)
                        }
                        var r = o.$thumb;
                        if (!r) {
                            var l = o.$trigger && o.$trigger.origTarget;
                            l && (r = l instanceof HTMLImageElement ? l : l.querySelector("img:not([aria-hidden])")),
                            !r && o.$trigger && (r = o.$trigger instanceof HTMLImageElement ? o.$trigger : o.$trigger.querySelector("img:not([aria-hidden])"))
                        }
                        o.$thumb = r || null;
                        var c = o.thumb;
                        !c && r && !(c = r.currentSrc || r.src) && r.dataset && (c = r.dataset.lazySrc || r.dataset.src),
                        c || "image" !== o.type || (c = o.src),
                        o.thumb = c || null,
                        o.caption = o.caption || "",
                        i.push(o)
                    }
                } catch (t) {
                    n.e(t)
                } finally {
                    n.f()
                }
                this.items = i
            }
        }, {
            key: "initCarousel",
            value: function() {
                var t = this;
                return this.Carousel = new W(this.$carousel,k(!0, {}, {
                    prefix: "",
                    classNames: {
                        viewport: "fancybox__viewport",
                        track: "fancybox__track",
                        slide: "fancybox__slide"
                    },
                    textSelection: !0,
                    preload: this.option("preload"),
                    friction: .88,
                    slides: this.items,
                    initialPage: this.options.startIndex,
                    slidesPerPage: 1,
                    infiniteX: this.option("infinite"),
                    infiniteY: !0,
                    l10n: this.option("l10n"),
                    Dots: !1,
                    Navigation: {
                        classNames: {
                            main: "fancybox__nav",
                            button: "carousel__button",
                            next: "is-next",
                            prev: "is-prev"
                        }
                    },
                    Panzoom: {
                        textSelection: !0,
                        panOnlyZoomed: function() {
                            return t.Carousel && t.Carousel.pages && t.Carousel.pages.length < 2 && !t.option("dragToClose")
                        },
                        lockAxis: function() {
                            if (t.Carousel) {
                                var e = "x";
                                return t.option("dragToClose") && (e += "y"),
                                e
                            }
                        }
                    },
                    on: {
                        "*": function(e) {
                            for (var i = arguments.length, n = new Array(i > 1 ? i - 1 : 0), o = 1; o < i; o++)
                                n[o - 1] = arguments[o];
                            return t.trigger.apply(t, ["Carousel.".concat(e)].concat(n))
                        },
                        init: function(e) {
                            return t.Carousel = e
                        },
                        createSlide: this.onCreateSlide,
                        settle: this.onSettle
                    }
                }, this.option("Carousel"))),
                this.option("dragToClose") && this.Carousel.Panzoom.on({
                    touchMove: this.onTouchMove,
                    afterTransform: this.onTransform,
                    touchEnd: this.onTouchEnd
                }),
                this.trigger("initCarousel"),
                this
            }
        }, {
            key: "onCreateSlide",
            value: function(t, e) {
                var i = e.caption || "";
                if ("function" == typeof this.options.caption && (i = this.options.caption.call(this, this, this.Carousel, e)),
                "string" == typeof i && i.length) {
                    var n = document.createElement("div")
                      , o = "fancybox__caption_".concat(this.id, "_").concat(e.index);
                    n.className = "fancybox__caption",
                    n.innerHTML = i,
                    n.setAttribute("id", o),
                    e.$caption = e.$el.appendChild(n),
                    e.$el.classList.add("has-caption"),
                    e.$el.setAttribute("aria-labelledby", o)
                }
            }
        }, {
            key: "onSettle",
            value: function() {
                this.option("autoFocus") && this.focus()
            }
        }, {
            key: "onFocus",
            value: function(t) {
                this.focus(t)
            }
        }, {
            key: "onClick",
            value: function(t) {
                if (!t.defaultPrevented) {
                    var e = t.composedPath()[0];
                    if (e.matches("[data-fancybox-close]"))
                        return t.preventDefault(),
                        void i.close(!1, t);
                    if (e.matches("[data-fancybox-next]"))
                        return t.preventDefault(),
                        void i.next();
                    if (e.matches("[data-fancybox-prev]"))
                        return t.preventDefault(),
                        void i.prev();
                    if (e.matches(X) || document.activeElement.blur(),
                    !e.closest(".fancybox__content"))
                        if (!getSelection().toString().length)
                            if (!1 !== this.trigger("click", t))
                                switch (this.option("click")) {
                                case "close":
                                    this.close();
                                    break;
                                case "next":
                                    this.next()
                                }
                }
            }
        }, {
            key: "onTouchMove",
            value: function() {
                var t = this.getSlide().Panzoom;
                return !t || 1 === t.content.scale
            }
        }, {
            key: "onTouchEnd",
            value: function(t) {
                var e = t.dragOffset.y;
                Math.abs(e) >= 150 || Math.abs(e) >= 35 && t.dragOffset.time < 350 ? (this.option("hideClass") && (this.getSlide().hideClass = "fancybox-throwOut".concat(t.content.y < 0 ? "Up" : "Down")),
                this.close()) : "y" === t.lockAxis && t.panTo({
                    y: 0
                })
            }
        }, {
            key: "onTransform",
            value: function(t) {
                if (this.$backdrop) {
                    var e = Math.abs(t.content.y)
                      , i = e < 1 ? "" : Math.max(.33, Math.min(1, 1 - e / t.content.fitHeight * 1.5));
                    this.$container.style.setProperty("--fancybox-ts", i ? "0s" : ""),
                    this.$container.style.setProperty("--fancybox-opacity", i)
                }
            }
        }, {
            key: "onMousedown",
            value: function() {
                "ready" === this.state && document.body.classList.add("is-using-mouse")
            }
        }, {
            key: "onKeydown",
            value: function(t) {
                if (i.getInstance().id === this.id) {
                    document.body.classList.remove("is-using-mouse");
                    var e = t.key
                      , n = this.option("keyboard");
                    if (n && !t.ctrlKey && !t.altKey && !t.shiftKey) {
                        var o = t.composedPath()[0]
                          , a = document.activeElement && document.activeElement.classList
                          , s = a && a.contains("carousel__button");
                        if ("Escape" !== e && !s)
                            if (t.target.isContentEditable || -1 !== ["BUTTON", "TEXTAREA", "OPTION", "INPUT", "SELECT", "VIDEO"].indexOf(o.nodeName))
                                return;
                        if (!1 !== this.trigger("keydown", e, t)) {
                            var r = n[e];
                            "function" == typeof this[r] && this[r]()
                        }
                    }
                }
            }
        }, {
            key: "getSlide",
            value: function() {
                var t = this.Carousel;
                if (!t)
                    return null;
                var e = null === t.page ? t.option("initialPage") : t.page
                  , i = t.pages || [];
                return i.length && i[e] ? i[e].slides[0] : null
            }
        }, {
            key: "focus",
            value: function(t) {
                if (!(i.ignoreFocusChange || ["init", "closing", "customClosing", "destroy"].indexOf(this.state) > -1)) {
                    var e = this.$container
                      , n = this.getSlide()
                      , o = "done" === n.state ? n.$el : null;
                    if (!o || !o.contains(document.activeElement)) {
                        t && t.preventDefault(),
                        i.ignoreFocusChange = !0;
                        for (var a, s = [], r = 0, l = Array.from(e.querySelectorAll(X)); r < l.length; r++) {
                            var c = l[r]
                              , h = c.offsetParent
                              , d = o && o.contains(c)
                              , u = !this.Carousel.$viewport.contains(c);
                            h && (d || u) ? (s.push(c),
                            void 0 !== c.dataset.origTabindex && (c.tabIndex = c.dataset.origTabindex,
                            c.removeAttribute("data-orig-tabindex")),
                            (c.hasAttribute("autoFocus") || !a && d && !c.classList.contains("carousel__button")) && (a = c)) : (c.dataset.origTabindex = void 0 === c.dataset.origTabindex ? c.getAttribute("tabindex") : c.dataset.origTabindex,
                            c.tabIndex = -1)
                        }
                        t ? s.indexOf(t.target) > -1 ? this.lastFocus = t.target : this.lastFocus === e ? q(s[s.length - 1]) : q(e) : this.option("autoFocus") && a ? q(a) : s.indexOf(document.activeElement) < 0 && q(e),
                        this.lastFocus = document.activeElement,
                        i.ignoreFocusChange = !1
                    }
                }
            }
        }, {
            key: "hideScrollbar",
            value: function() {
                if (H) {
                    var t = window.innerWidth - document.documentElement.getBoundingClientRect().width
                      , e = "fancybox-style-noscroll"
                      , i = document.getElementById(e);
                    i || t > 0 && ((i = document.createElement("style")).id = e,
                    i.type = "text/css",
                    i.innerHTML = ".compensate-for-scrollbar {padding-right: ".concat(t, "px;}"),
                    document.getElementsByTagName("head")[0].appendChild(i),
                    document.body.classList.add("compensate-for-scrollbar"))
                }
            }
        }, {
            key: "revealScrollbar",
            value: function() {
                document.body.classList.remove("compensate-for-scrollbar");
                var t = document.getElementById("fancybox-style-noscroll");
                t && t.remove()
            }
        }, {
            key: "clearContent",
            value: function(t) {
                this.Carousel.trigger("removeSlide", t),
                t.$content && (t.$content.remove(),
                t.$content = null),
                t.$closeButton && (t.$closeButton.remove(),
                t.$closeButton = null),
                t._className && t.$el.classList.remove(t._className)
            }
        }, {
            key: "setContent",
            value: function(t, e) {
                var i, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, o = t.$el;
                if (e instanceof HTMLElement)
                    ["img", "iframe", "video", "audio"].indexOf(e.nodeName.toLowerCase()) > -1 ? (i = document.createElement("div")).appendChild(e) : i = e;
                else {
                    var a = document.createRange().createContextualFragment(e);
                    (i = document.createElement("div")).appendChild(a)
                }
                if (t.filter && !t.error && (i = i.querySelector(t.filter)),
                i instanceof Element)
                    return t._className = "has-".concat(n.suffix || t.type || "unknown"),
                    o.classList.add(t._className),
                    i.classList.add("fancybox__content"),
                    "none" !== i.style.display && "none" !== getComputedStyle(i).getPropertyValue("display") || (i.style.display = t.display || this.option("defaultDisplay") || "flex"),
                    t.id && i.setAttribute("id", t.id),
                    t.$content = i,
                    o.prepend(i),
                    this.manageCloseButton(t),
                    "loading" !== t.state && this.revealContent(t),
                    i;
                this.setError(t, "{{ELEMENT_NOT_FOUND}}")
            }
        }, {
            key: "manageCloseButton",
            value: function(t) {
                var e = this
                  , i = void 0 === t.closeButton ? this.option("closeButton") : t.closeButton;
                if (i && ("top" !== i || !this.$closeButton)) {
                    var n = document.createElement("button");
                    n.classList.add("carousel__button", "is-close"),
                    n.setAttribute("title", this.options.l10n.CLOSE),
                    n.innerHTML = this.option("template.closeButton"),
                    n.addEventListener("click", (function(t) {
                        return e.close(t)
                    }
                    )),
                    "inside" === i ? (t.$closeButton && t.$closeButton.remove(),
                    t.$closeButton = t.$content.appendChild(n)) : this.$closeButton = this.$container.insertBefore(n, this.$container.firstChild)
                }
            }
        }, {
            key: "revealContent",
            value: function(t) {
                var e = this;
                this.trigger("reveal", t),
                t.$content.style.visibility = "";
                var i = !1;
                t.error || "loading" === t.state || null !== this.Carousel.prevPage || t.index !== this.options.startIndex || (i = void 0 === t.showClass ? this.option("showClass") : t.showClass),
                i ? (t.state = "animating",
                this.animateCSS(t.$content, i, (function() {
                    e.done(t)
                }
                ))) : this.done(t)
            }
        }, {
            key: "animateCSS",
            value: function(t, e, i) {
                if (t && t.dispatchEvent(new CustomEvent("animationend",{
                    bubbles: !0,
                    cancelable: !0
                })),
                t && e) {
                    t.addEventListener("animationend", (function n(o) {
                        o.currentTarget === this && (t.removeEventListener("animationend", n),
                        i && i(),
                        t.classList.remove(e))
                    }
                    )),
                    t.classList.add(e)
                } else
                    "function" == typeof i && i()
            }
        }, {
            key: "done",
            value: function(t) {
                t.state = "done",
                this.trigger("done", t);
                var e = this.getSlide();
                e && t.index === e.index && this.option("autoFocus") && this.focus()
            }
        }, {
            key: "setError",
            value: function(t, e) {
                t.error = e,
                this.hideLoading(t),
                this.clearContent(t);
                var i = document.createElement("div");
                i.classList.add("fancybox-error"),
                i.innerHTML = this.localize(e || "<p>{{ERROR}}</p>"),
                this.setContent(t, i, {
                    suffix: "error"
                })
            }
        }, {
            key: "showLoading",
            value: function(t) {
                var e = this;
                t.state = "loading",
                t.$el.classList.add("is-loading");
                var i = t.$el.querySelector(".fancybox__spinner");
                i || ((i = document.createElement("div")).classList.add("fancybox__spinner"),
                i.innerHTML = this.option("template.spinner"),
                i.addEventListener("click", (function() {
                    e.Carousel.Panzoom.velocity || e.close()
                }
                )),
                t.$el.prepend(i))
            }
        }, {
            key: "hideLoading",
            value: function(t) {
                var e = t.$el && t.$el.querySelector(".fancybox__spinner");
                e && (e.remove(),
                t.$el.classList.remove("is-loading")),
                "loading" === t.state && (this.trigger("load", t),
                t.state = "ready")
            }
        }, {
            key: "next",
            value: function() {
                var t = this.Carousel;
                t && t.pages.length > 1 && t.slideNext()
            }
        }, {
            key: "prev",
            value: function() {
                var t = this.Carousel;
                t && t.pages.length > 1 && t.slidePrev()
            }
        }, {
            key: "jumpTo",
            value: function() {
                var t;
                this.Carousel && (t = this.Carousel).slideTo.apply(t, arguments)
            }
        }, {
            key: "close",
            value: function(t) {
                var e = this;
                if (t && t.preventDefault(),
                !["closing", "customClosing", "destroy"].includes(this.state) && !1 !== this.trigger("shouldClose", t) && (this.state = "closing",
                this.Carousel.Panzoom.destroy(),
                this.detachEvents(),
                this.trigger("closing", t),
                "destroy" !== this.state)) {
                    this.$container.setAttribute("aria-hidden", "true"),
                    this.$container.classList.add("is-closing");
                    var i = this.getSlide();
                    if (this.Carousel.slides.forEach((function(t) {
                        t.$content && t.index !== i.index && e.Carousel.trigger("removeSlide", t)
                    }
                    )),
                    "closing" === this.state) {
                        var n = void 0 === i.hideClass ? this.option("hideClass") : i.hideClass;
                        this.animateCSS(i.$content, n, (function() {
                            e.destroy()
                        }
                        ), !0)
                    }
                }
            }
        }, {
            key: "destroy",
            value: function() {
                if ("destroy" !== this.state) {
                    this.state = "destroy",
                    this.trigger("destroy");
                    var t = this.option("placeFocusBack") ? this.getSlide().$trigger : null;
                    this.Carousel.destroy(),
                    this.detachPlugins(),
                    this.Carousel = null,
                    this.options = {},
                    this.events = {},
                    this.$container.remove(),
                    this.$container = this.$backdrop = this.$carousel = null,
                    t && q(t),
                    at.delete(this.id);
                    var e = i.getInstance();
                    e ? e.focus() : (document.documentElement.classList.remove("with-fancybox"),
                    document.body.classList.remove("is-using-mouse"),
                    this.revealScrollbar())
                }
            }
        }], [{
            key: "show",
            value: function(t) {
                var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                return new i(t,e)
            }
        }, {
            key: "fromEvent",
            value: function(t) {
                var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                if (!t.defaultPrevented && !(t.button && 0 !== t.button || t.ctrlKey || t.metaKey || t.shiftKey)) {
                    var n, o, a, s = t.composedPath()[0], r = s;
                    if ((r.matches("[data-fancybox-trigger]") || (r = r.closest("[data-fancybox-trigger]"))) && (n = r && r.dataset && r.dataset.fancyboxTrigger),
                    n) {
                        var l = document.querySelectorAll('[data-fancybox="'.concat(n, '"]'))
                          , c = parseInt(r.dataset.fancyboxIndex, 10) || 0;
                        r = l.length ? l[c] : r
                    }
                    r || (r = s),
                    Array.from(i.openers.keys()).reverse().some((function(e) {
                        a = r;
                        var i = !1;
                        try {
                            a instanceof Element && ("string" == typeof e || e instanceof String) && (i = a.matches(e) || (a = a.closest(e)))
                        } catch (t) {}
                        return !!i && (t.preventDefault(),
                        o = e,
                        !0)
                    }
                    ));
                    var h = !1;
                    if (o) {
                        e.event = t,
                        e.target = a,
                        a.origTarget = s,
                        h = i.fromOpener(o, e);
                        var d = i.getInstance();
                        d && "ready" === d.state && t.detail && document.body.classList.add("is-using-mouse")
                    }
                    return h
                }
            }
        }, {
            key: "fromOpener",
            value: function(t) {
                var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}
                  , n = function(t) {
                    for (var e = ["false", "0", "no", "null", "undefined"], i = ["true", "1", "yes"], n = Object.assign({}, t.dataset), o = {}, a = 0, s = Object.entries(n); a < s.length; a++) {
                        var r = g(s[a], 2)
                          , l = r[0]
                          , c = r[1];
                        if ("fancybox" !== l)
                            if ("width" === l || "height" === l)
                                o["_".concat(l)] = c;
                            else if ("string" == typeof c || c instanceof String)
                                if (e.indexOf(c) > -1)
                                    o[l] = !1;
                                else if (i.indexOf(o[l]) > -1)
                                    o[l] = !0;
                                else
                                    try {
                                        o[l] = JSON.parse(c)
                                    } catch (t) {
                                        o[l] = c
                                    }
                            else
                                o[l] = c
                    }
                    return t instanceof Element && (o.$trigger = t),
                    o
                }
                  , o = []
                  , a = e.startIndex || 0
                  , s = e.target || null
                  , r = void 0 !== (e = k({}, e, i.openers.get(t))).groupAll && e.groupAll
                  , l = void 0 === e.groupAttr ? "data-fancybox" : e.groupAttr
                  , c = l && s ? s.getAttribute("".concat(l)) : "";
                if (!s || c || r) {
                    var h = e.root || (s ? s.getRootNode() : document.body);
                    o = [].slice.call(h.querySelectorAll(t))
                }
                if (s && !r && (o = c ? o.filter((function(t) {
                    return t.getAttribute("".concat(l)) === c
                }
                )) : [s]),
                !o.length)
                    return !1;
                var d = i.getInstance();
                return !(d && o.indexOf(d.options.$trigger) > -1) && (a = s ? o.indexOf(s) : a,
                new i(o = o.map(n),k({}, e, {
                    startIndex: a,
                    $trigger: s
                })))
            }
        }, {
            key: "bind",
            value: function(t) {
                var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                function n() {
                    document.body.addEventListener("click", i.fromEvent, !1)
                }
                H && (i.openers.size || (/complete|interactive|loaded/.test(document.readyState) ? n() : document.addEventListener("DOMContentLoaded", n)),
                i.openers.set(t, e))
            }
        }, {
            key: "unbind",
            value: function(t) {
                i.openers.delete(t),
                i.openers.size || i.destroy()
            }
        }, {
            key: "destroy",
            value: function() {
                for (var t; t = i.getInstance(); )
                    t.destroy();
                i.openers = new Map,
                document.body.removeEventListener("click", i.fromEvent, !1)
            }
        }, {
            key: "getInstance",
            value: function(t) {
                return t ? at.get(t) : Array.from(at.values()).reverse().find((function(t) {
                    return !["closing", "customClosing", "destroy"].includes(t.state) && t
                }
                )) || null
            }
        }, {
            key: "close",
            value: function() {
                var t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]
                  , e = arguments.length > 1 ? arguments[1] : void 0;
                if (t) {
                    var n, o = x(at.values());
                    try {
                        for (o.s(); !(n = o.n()).done; ) {
                            var a = n.value;
                            a.close(e)
                        }
                    } catch (t) {
                        o.e(t)
                    } finally {
                        o.f()
                    }
                } else {
                    var s = i.getInstance();
                    s && s.close(e)
                }
            }
        }, {
            key: "next",
            value: function() {
                var t = i.getInstance();
                t && t.next()
            }
        }, {
            key: "prev",
            value: function() {
                var t = i.getInstance();
                t && t.prev()
            }
        }]),
        i
    }(O);
    rt.version = "4.0.26",
    rt.defaults = ot,
    rt.openers = new Map,
    rt.Plugins = nt,
    rt.bind("[data-fancybox]");
    for (var lt = 0, ct = Object.entries(rt.Plugins || {}); lt < ct.length; lt++) {
        var ht = g(ct[lt], 2);
        ht[0];
        var dt = ht[1];
        "function" == typeof dt.create && dt.create(rt)
    }
    t.Carousel = W,
    t.Fancybox = rt,
    t.Panzoom = M
}
));
